swagger-api / swagger-ui

Swagger UI is a collection of HTML, JavaScript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API.
https://swagger.io
Apache License 2.0
26.51k stars 8.96k forks source link

Swagger UI freezes trying to proccess the following swagger.json #2281

Closed jtorres-viavansi closed 8 years ago

jtorres-viavansi commented 8 years ago

Hello, I'm trying to generate swagger-ui from the following swagger.json but it freezes and don't generate:

{
  "swagger" : "2.0",
  "info" : {
    "version" : "1.0.2"
  },
  "host" : "localhost:8443/viafirma-platform4",
  "basePath" : "/rest",
  "tags" : [ {
    "name" : "server"
  }, {
    "name" : "template"
  }, {
    "name" : "verify"
  }, {
    "name" : "client"
  }, {
    "name" : "test"
  } ],
  "schemes" : [ "https" ],
  "paths" : {
    "/client/signature/config" : {
      "post" : {
        "tags" : [ "client" ],
        "summary" : "Method to obtain the signature configuration for a existing signature Id.",
        "description" : "",
        "operationId" : "getSignatureConfig",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "Authorization",
          "in" : "header",
          "description" : "Authentication string",
          "required" : true,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "description" : "An existing signature code obtained in initSignature method",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Object with SignatureConfigurationDTO as content, this object holds information about the signature configuration",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureConfigurationDTO"
            }
          },
          "401" : {
            "description" : "Unauthorized",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureConfigurationDTO"
            }
          },
          "500" : {
            "description" : "Internal server error",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureConfigurationDTO"
            }
          },
          "403" : {
            "description" : "Forbidden",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureConfigurationDTO"
            }
          }
        }
      }
    },
    "/client/signature/finalize" : {
      "post" : {
        "tags" : [ "client" ],
        "summary" : "This method finalizes the client signature operation",
        "description" : "This method finalizes the client signature operation",
        "operationId" : "finalizeSignature",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "Authorization",
          "in" : "header",
          "description" : "Authentication string",
          "required" : true,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "description" : "FinalizeSignatureRequestDTO containing List of RawSignatureDataDTO of all signatures you want to finalize. Each RawSignatureDataDTO contains the needed information for his own signature operation.",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/FinalizeSignatureRequestDTO"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Object with a list of all signatures operation requested to end",
            "schema" : {
              "type" : "array",
              "items" : {
                "$ref" : "#/definitions/ResponseSignatureResultsDTO"
              }
            }
          },
          "401" : {
            "description" : "Unauthorized",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureResultsDTO"
            }
          },
          "500" : {
            "description" : "Internal server error",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureResultsDTO"
            }
          },
          "403" : {
            "description" : "Forbidden",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureResultsDTO"
            }
          }
        }
      }
    },
    "/client/signature/init" : {
      "post" : {
        "tags" : [ "client" ],
        "summary" : "Starts process for a client signature",
        "description" : "Starts process for a client signature. ",
        "operationId" : "initSignature",
        "consumes" : [ "multipart/form-data" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "Authorization",
          "in" : "header",
          "description" : "Authentication string",
          "required" : true,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "description" : "Configuration to apply in the signature process",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/SignatureConfigurationDTO"
          }
        }, {
          "name" : "document",
          "in" : "formData",
          "description" : "Document to Sign. This method does not closes the input stream",
          "required" : true,
          "type" : "file"
        } ],
        "responses" : {
          "200" : {
            "description" : "Object with code for this operation as content",
            "schema" : {
              "$ref" : "#/definitions/RestResponseDTO"
            }
          },
          "401" : {
            "description" : "Unauthorized",
            "schema" : {
              "$ref" : "#/definitions/RestResponseDTO"
            }
          },
          "500" : {
            "description" : "Internal server error",
            "schema" : {
              "$ref" : "#/definitions/RestResponseDTO"
            }
          },
          "403" : {
            "description" : "Forbidden",
            "schema" : {
              "$ref" : "#/definitions/RestResponseDTO"
            }
          }
        }
      }
    },
    "/client/signature/init/template" : {
      "post" : {
        "tags" : [ "client" ],
        "summary" : "Starts process for a client signature",
        "description" : "Starts process for a client signature. ",
        "operationId" : "initSignature",
        "consumes" : [ "multipart/form-data" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "body",
          "description" : "Code for the template to use",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "document",
          "in" : "formData",
          "description" : "Document to Sign. This method does not closes the input stream",
          "required" : true,
          "type" : "file"
        } ],
        "responses" : {
          "200" : {
            "description" : "Object with code for this operation as content",
            "schema" : {
              "$ref" : "#/definitions/RestResponseDTO"
            }
          },
          "401" : {
            "description" : "Unauthorized",
            "schema" : {
              "$ref" : "#/definitions/RestResponseDTO"
            }
          },
          "500" : {
            "description" : "Internal server error",
            "schema" : {
              "$ref" : "#/definitions/RestResponseDTO"
            }
          },
          "403" : {
            "description" : "Forbidden",
            "schema" : {
              "$ref" : "#/definitions/RestResponseDTO"
            }
          }
        }
      }
    },
    "/client/signature/jnlp/{signatureCode}" : {
      "get" : {
        "tags" : [ "client" ],
        "summary" : "Method to get the jnlp file for the viafirma client desktop.",
        "description" : "Method to get the jnlp file for the viafirma client desktop.",
        "operationId" : "getJnlp",
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "signatureCode",
          "in" : "path",
          "description" : "Signature code for the current signature in process",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "The jnlp content file",
            "schema" : {
              "type" : "string"
            }
          },
          "500" : {
            "description" : "Internal server error"
          }
        }
      }
    },
    "/client/signature/resume" : {
      "post" : {
        "tags" : [ "client" ],
        "summary" : "Method to continue a signature operation with a known signature code.",
        "description" : "Method to continue a signature operation with a known signature code.",
        "operationId" : "resumeSignature",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "Authorization",
          "in" : "header",
          "description" : "Authentication string",
          "required" : true,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "description" : "ResumeSignatureRequestDTO containing signature code obtained from a previous invocation of initSignature(...) method and certificate to use to sign",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/ResumeSignatureRequestDTO"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Object with SignatureOperationDTO as content, this object holds information about the signature operation",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureOperationDTO"
            }
          },
          "401" : {
            "description" : "Unauthorized",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureOperationDTO"
            }
          },
          "500" : {
            "description" : "Internal server error",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureOperationDTO"
            }
          },
          "403" : {
            "description" : "Forbidden",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureOperationDTO"
            }
          }
        }
      }
    },
    "/client/signature/status" : {
      "post" : {
        "tags" : [ "client" ],
        "summary" : "Method to get the status of a signature operation",
        "description" : "Method to get the status of a signature operation.",
        "operationId" : "getSignatureStatus",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "Authorization",
          "in" : "header",
          "description" : "Authentication string",
          "required" : true,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "description" : "A signature code to query",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Object with the status of the signature operation",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureOperationStatusDTO"
            }
          },
          "401" : {
            "description" : "Unauthorized",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureOperationStatusDTO"
            }
          },
          "500" : {
            "description" : "Internal server error",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureOperationStatusDTO"
            }
          },
          "403" : {
            "description" : "Forbidden",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureOperationStatusDTO"
            }
          },
          "429" : {
            "description" : "Too Many Requests, polling is not allowed.",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureOperationStatusDTO"
            }
          }
        }
      }
    },
    "/server/sign" : {
      "post" : {
        "tags" : [ "server" ],
        "summary" : "Method for signing a document in server using an alias and pass",
        "description" : "Method for signing a document in server using an alias and pass",
        "operationId" : "signByServer",
        "consumes" : [ "multipart/form-data" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "Authorization",
          "in" : "header",
          "description" : "Authentication string",
          "required" : true,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "description" : "Configuration to apply in the signature process",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/SignatureConfigurationDTO"
          }
        }, {
          "name" : "document",
          "in" : "formData",
          "description" : "Document to sign. This method does not close the inputStream.",
          "required" : true,
          "type" : "file"
        } ],
        "responses" : {
          "200" : {
            "description" : "SignatureResultDTO with the bytes of the signed document, a code for the signature and the mimeType",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureResultDTO"
            }
          },
          "401" : {
            "description" : "Unauthorized",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureResultDTO"
            }
          },
          "500" : {
            "description" : "Internal server error",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureResultDTO"
            }
          },
          "403" : {
            "description" : "Forbidden",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureResultDTO"
            }
          }
        }
      }
    },
    "/server/sign/template" : {
      "post" : {
        "tags" : [ "server" ],
        "summary" : "Method for signing a document in server using an alias and pass",
        "description" : "Method for signing a document in server using an alias and pass",
        "operationId" : "signByServerWithTemplate",
        "consumes" : [ "multipart/form-data" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "Authorization",
          "in" : "header",
          "description" : "Authentication string",
          "required" : true,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "description" : "Code for the signature template existing in the platform",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "document",
          "in" : "formData",
          "description" : "Document to sign. This method does not close the inputStream.",
          "required" : true,
          "type" : "file"
        } ],
        "responses" : {
          "200" : {
            "description" : "SignatureResultDTO with the bytes of the signed document, a code for the signature and the mimeType",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureResultDTO"
            }
          },
          "401" : {
            "description" : "Unauthorized",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureResultDTO"
            }
          },
          "500" : {
            "description" : "Internal server error",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureResultDTO"
            }
          },
          "403" : {
            "description" : "Forbidden",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureResultDTO"
            }
          }
        }
      }
    },
    "/template/create" : {
      "post" : {
        "tags" : [ "template" ],
        "summary" : "Creates a new SignatureTemplateDTO",
        "description" : "Creates a new SignatureTemplateDTO",
        "operationId" : "createSignTemplate",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "Authorization",
          "in" : "header",
          "description" : "Authentication string",
          "required" : true,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "description" : "SignatureTemplateDTO to save",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/SignatureTemplateDTO"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "ResponseSignatureTemplateResultDTO with the response of service",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureTemplateResultDTO"
            }
          },
          "401" : {
            "description" : "Unauthorized",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureTemplateResultDTO"
            }
          },
          "500" : {
            "description" : "Internal server error",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureTemplateResultDTO"
            }
          },
          "403" : {
            "description" : "Forbidden",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureTemplateResultDTO"
            }
          }
        }
      }
    },
    "/template/delete/{code}" : {
      "delete" : {
        "tags" : [ "template" ],
        "summary" : "Deletes the SignatureTemplateDTO associated to the passed code",
        "description" : "Deletes the SignatureTemplateDTO associated to the passed code",
        "operationId" : "deleteSignTemplate",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "Authorization",
          "in" : "header",
          "description" : "Authentication string",
          "required" : true,
          "type" : "string"
        }, {
          "name" : "code",
          "in" : "path",
          "description" : "Signature template code to delete",
          "required" : true,
          "type" : "string"
        } ],
        "responses" : {
          "200" : {
            "description" : "RestResponseDTO<SignatureTemplateResultDTO> with the response of service",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureTemplateResultDTO"
            }
          },
          "401" : {
            "description" : "Unauthorized",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureTemplateResultDTO"
            }
          },
          "500" : {
            "description" : "Internal server error",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureTemplateResultDTO"
            }
          },
          "403" : {
            "description" : "Forbidden",
            "schema" : {
              "$ref" : "#/definitions/ResponseSignatureTemplateResultDTO"
            }
          }
        }
      }
    },
    "/test/get" : {
      "get" : {
        "tags" : [ "test" ],
        "summary" : "Testing GET service",
        "description" : "Testing REST service",
        "operationId" : "testGet",
        "produces" : [ "application/json" ],
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "Service Ok"
          }
        },
        "security" : [ {
          "basic" : [ ]
        } ]
      }
    },
    "/test/post" : {
      "post" : {
        "tags" : [ "test" ],
        "summary" : "Testing POST service",
        "description" : "Testing REST service",
        "operationId" : "testPost",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : "Service Ok"
          }
        },
        "security" : [ {
          "basic" : [ ]
        } ]
      }
    },
    "/verify/code" : {
      "post" : {
        "tags" : [ "verify" ],
        "summary" : "Verifies the signature in the passed document",
        "description" : "Verifies the signature in the passed document",
        "operationId" : "verifySignatureCode",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "Authorization",
          "in" : "header",
          "description" : "Authentication string",
          "required" : true,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "description" : "Signature code",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/VerificationRequestDTO"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "RestResponseDTO<VerifierDocumentDTO> with verification result",
            "schema" : {
              "$ref" : "#/definitions/ResponseVerifierDocumentDTO"
            }
          },
          "401" : {
            "description" : "Unauthorized",
            "schema" : {
              "$ref" : "#/definitions/RestResponseDTO"
            }
          },
          "500" : {
            "description" : "Internal server error",
            "schema" : {
              "$ref" : "#/definitions/RestResponseDTO"
            }
          },
          "403" : {
            "description" : "Forbidden",
            "schema" : {
              "$ref" : "#/definitions/RestResponseDTO"
            }
          }
        }
      }
    },
    "/verify/document" : {
      "post" : {
        "tags" : [ "verify" ],
        "summary" : "Verifies the signature in the passed document",
        "description" : "Verifies the signature in the passed document",
        "operationId" : "verifyDocument",
        "consumes" : [ "multipart/form-data" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "name" : "Authorization",
          "in" : "header",
          "description" : "Authentication string",
          "required" : true,
          "type" : "string"
        }, {
          "in" : "body",
          "name" : "body",
          "description" : "param 1",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/VerificationRequestDTO"
          }
        }, {
          "name" : "originalDocument",
          "in" : "formData",
          "description" : "param 2",
          "required" : true,
          "type" : "file"
        }, {
          "name" : "signedDocument",
          "in" : "formData",
          "description" : "param 3",
          "required" : true,
          "type" : "file"
        } ],
        "responses" : {
          "200" : {
            "description" : "RestResponseDTO<VerifierDocumentDTO> with verification result",
            "schema" : {
              "$ref" : "#/definitions/ResponseVerifierDocumentDTO"
            }
          },
          "401" : {
            "description" : "Unauthorized",
            "schema" : {
              "$ref" : "#/definitions/RestResponseDTO"
            }
          },
          "500" : {
            "description" : "Internal server error",
            "schema" : {
              "$ref" : "#/definitions/RestResponseDTO"
            }
          },
          "403" : {
            "description" : "Forbidden",
            "schema" : {
              "$ref" : "#/definitions/RestResponseDTO"
            }
          }
        }
      }
    }
  },
  "definitions" : {
    "ConfigCadesDTO" : {
      "type" : "object"
    },
    "ResponseVerifierDocumentDTO" : {
      "type" : "object",
      "properties" : {
        "content" : {
          "type" : "string",
          "description" : "Content, optionally filled"
        },
        "httpStatusCode" : {
          "type" : "integer",
          "format" : "int32",
          "description" : "Integer with HttpStatusCode"
        },
        "errorCode" : {
          "type" : "string",
          "description" : "String with error code"
        },
        "message" : {
          "type" : "string",
          "description" : "String with operation message"
        },
        "verifierDocumentDTO" : {
          "description" : "VerifierDocumentDTO object",
          "$ref" : "#/definitions/VerifierDocumentDTO"
        }
      },
      "description" : "Response object Verifier Document"
    },
    "PrivateKey" : {
      "type" : "object",
      "properties" : {
        "format" : {
          "type" : "string"
        },
        "algorithm" : {
          "type" : "string"
        },
        "encoded" : {
          "type" : "array",
          "items" : {
            "type" : "string",
            "format" : "byte"
          }
        },
        "destroyed" : {
          "type" : "boolean",
          "default" : false
        }
      }
    },
    "VerifierCrlDTO" : {
      "type" : "object",
      "properties" : {
        "type" : {
          "type" : "string"
        },
        "version" : {
          "type" : "string"
        },
        "issuer" : {
          "type" : "string"
        },
        "signingAlgorithm" : {
          "type" : "string"
        },
        "signingOID" : {
          "type" : "string"
        },
        "nextUpdate" : {
          "type" : "string",
          "format" : "date-time"
        },
        "thisUpdate" : {
          "type" : "string",
          "format" : "date-time"
        }
      }
    },
    "XMLEvidenceDTO" : {
      "type" : "object",
      "properties" : {
        "locationData" : {
          "type" : "string"
        },
        "locationInfo" : {
          "type" : "string"
        },
        "longitude" : {
          "type" : "string"
        },
        "latitude" : {
          "type" : "string"
        },
        "pressureMaxValue" : {
          "type" : "string"
        },
        "pressureMinValue" : {
          "type" : "string"
        },
        "pressureStylusInfo" : {
          "type" : "string"
        },
        "deviceInfo" : {
          "$ref" : "#/definitions/XMLDeviceDTO"
        },
        "hashImage" : {
          "type" : "string"
        },
        "hashPdf" : {
          "$ref" : "#/definitions/XMLPdfPageHashes"
        },
        "cipherAlgorithm" : {
          "type" : "string"
        },
        "encryptedAesSessionKey" : {
          "type" : "string"
        },
        "trustedThirdParty" : {
          "type" : "string"
        },
        "cipheredData" : {
          "type" : "string"
        },
        "evidenceType" : {
          "type" : "string"
        },
        "evidenceVersion" : {
          "type" : "string"
        },
        "evidenceTimestamp" : {
          "type" : "integer",
          "format" : "int64"
        }
      }
    },
    "SignatureCodeDTO" : {
      "type" : "object",
      "properties" : {
        "custodyPathV1" : {
          "type" : "string"
        },
        "config" : {
          "$ref" : "#/definitions/ConfigSignatureDTO"
        },
        "valid" : {
          "type" : "boolean",
          "default" : false
        },
        "custodyPath" : {
          "type" : "string"
        },
        "type" : {
          "type" : "string"
        },
        "packaging" : {
          "type" : "string",
          "enum" : [ "ENVELOPED", "ENVELOPING", "DETACHED" ]
        },
        "date" : {
          "type" : "string",
          "format" : "date-time"
        },
        "cades" : {
          "type" : "boolean",
          "default" : false
        },
        "xades" : {
          "type" : "boolean",
          "default" : false
        },
        "pades" : {
          "type" : "boolean",
          "default" : false
        }
      }
    },
    "VerifierTimeStampDTO" : {
      "type" : "object",
      "properties" : {
        "type" : {
          "type" : "string"
        },
        "indication" : {
          "type" : "string"
        },
        "subIndication" : {
          "type" : "string"
        },
        "digestAlgo" : {
          "type" : "string"
        },
        "productionTime" : {
          "type" : "string",
          "format" : "date-time"
        },
        "certificate" : {
          "$ref" : "#/definitions/VerifierCertificateDTO"
        }
      }
    },
    "VerifierDTO" : {
      "type" : "object",
      "properties" : {
        "validRevocationSource" : {
          "type" : "boolean",
          "default" : false
        },
        "method" : {
          "type" : "string"
        },
        "ocspResponse" : {
          "$ref" : "#/definitions/VerifierOcspDTO"
        },
        "crlResponse" : {
          "$ref" : "#/definitions/VerifierCrlDTO"
        },
        "revocationDate" : {
          "type" : "string",
          "format" : "date-time"
        },
        "revocationReason" : {
          "type" : "string"
        },
        "url" : {
          "type" : "string"
        },
        "info" : {
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        }
      }
    },
    "XMLPdfPageHash" : {
      "type" : "object",
      "properties" : {
        "pageNum" : {
          "type" : "integer",
          "format" : "int32"
        },
        "value" : {
          "type" : "string"
        }
      }
    },
    "ConfigPolicyDTO" : {
      "type" : "object",
      "properties" : {
        "id" : {
          "type" : "string"
        },
        "description" : {
          "type" : "string"
        },
        "digestAlgorithm" : {
          "type" : "string",
          "enum" : [ "SHA1", "SHA224", "SHA256", "SHA384", "SHA512", "RIPEMD160", "MD2", "MD5" ]
        },
        "digestValue" : {
          "type" : "array",
          "items" : {
            "type" : "string",
            "format" : "byte"
          }
        },
        "contentHintsDescription" : {
          "type" : "string"
        },
        "contentHintsType" : {
          "type" : "string"
        }
      }
    },
    "VerificationRequestDTO" : {
      "type" : "object",
      "properties" : {
        "signatureCode" : {
          "type" : "string"
        },
        "revocationRequestType" : {
          "type" : "string",
          "enum" : [ "DEFAULT", "ONLINE", "ONLINE_WITH_CACHE", "CRL", "CRL_CACHE", "OCSP", "OFFLINE" ]
        }
      }
    },
    "SignatureResultDTO" : {
      "type" : "object",
      "properties" : {
        "bytes" : {
          "type" : "array",
          "description" : "Signed document",
          "items" : {
            "type" : "string",
            "format" : "byte"
          }
        },
        "signatureCode" : {
          "type" : "string",
          "description" : "Signature code"
        },
        "mimeType" : {
          "type" : "string",
          "description" : "MimeType of signed document",
          "enum" : [ "BINARY", "XML", "PDF", "PKCS7", "ASICS", "ASICE", "TEXT" ]
        }
      },
      "description" : "Object with result of signature operation"
    },
    "RawSignatureDataDTO" : {
      "type" : "object",
      "properties" : {
        "signatureCode" : {
          "type" : "string"
        },
        "certificateB64" : {
          "type" : "string"
        },
        "hashDocument" : {
          "type" : "array",
          "items" : {
            "type" : "string",
            "format" : "byte"
          }
        },
        "signatureValue" : {
          "type" : "array",
          "items" : {
            "type" : "string",
            "format" : "byte"
          }
        },
        "message" : {
          "type" : "string"
        },
        "operationResult" : {
          "type" : "string",
          "enum" : [ "SUCCESS", "CANCEL", "ERROR", "UNKNOWN" ]
        }
      }
    },
    "VerifierEvidenceDTO" : {
      "type" : "object",
      "properties" : {
        "validationStatus" : {
          "type" : "string",
          "enum" : [ "VALID", "UNKNOWN", "INVALID" ]
        },
        "evidenceInfo" : {
          "$ref" : "#/definitions/XMLEvidenceDTO"
        },
        "evidenceName" : {
          "type" : "string"
        },
        "signatureInfo" : {
          "$ref" : "#/definitions/VerifierSignatureDTO"
        },
        "validationMessages" : {
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        },
        "validationErrors" : {
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        }
      }
    },
    "VerifierSignatureDTO" : {
      "type" : "object",
      "properties" : {
        "format" : {
          "type" : "string"
        },
        "encryptionAlgorithm" : {
          "type" : "string"
        },
        "digestAlgorithm" : {
          "type" : "string"
        },
        "level" : {
          "type" : "string"
        },
        "signingTime" : {
          "type" : "string",
          "format" : "date-time"
        },
        "validationStatus" : {
          "type" : "string",
          "enum" : [ "VALID", "UNKNOWN", "INVALID" ]
        },
        "indication" : {
          "type" : "string"
        },
        "subIndication" : {
          "type" : "string"
        },
        "policyId" : {
          "type" : "string"
        },
        "errorMessage" : {
          "type" : "string"
        },
        "signedBy" : {
          "type" : "string"
        },
        "certificate" : {
          "$ref" : "#/definitions/VerifierCertificateDTO"
        },
        "timeStamps" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/VerifierTimeStampDTO"
          }
        }
      }
    },
    "ResponseSignatureConfigurationDTO" : {
      "type" : "object",
      "properties" : {
        "content" : {
          "type" : "string",
          "description" : "Content, optionally filled"
        },
        "httpStatusCode" : {
          "type" : "integer",
          "format" : "int32",
          "description" : "Integer with HttpStatusCode"
        },
        "errorCode" : {
          "type" : "string",
          "description" : "String with error code"
        },
        "message" : {
          "type" : "string",
          "description" : "String with operation message"
        },
        "signatureConfigurationDTO" : {
          "description" : "SignatureConfigurationDTO object",
          "$ref" : "#/definitions/SignatureConfigurationDTO"
        }
      },
      "description" : "Response object with signature configuration data"
    },
    "VerifierOidDTO" : {
      "type" : "object",
      "properties" : {
        "oid" : {
          "type" : "string"
        },
        "description" : {
          "type" : "string"
        },
        "values" : {
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        },
        "childOids" : {
          "type" : "array"
        },
        "objectIdentifier" : {
          "type" : "boolean",
          "default" : false
        }
      }
    },
    "ConfigPadesDTO" : {
      "type" : "object",
      "properties" : {
        "stamper" : {
          "$ref" : "#/definitions/StamperDTO"
        }
      }
    },
    "ResponseSignatureResultsDTO" : {
      "type" : "object",
      "properties" : {
        "content" : {
          "type" : "string",
          "description" : "Content, optionally filled"
        },
        "httpStatusCode" : {
          "type" : "integer",
          "format" : "int32",
          "description" : "Integer with HttpStatusCode"
        },
        "errorCode" : {
          "type" : "string",
          "description" : "String with error code"
        },
        "message" : {
          "type" : "string",
          "description" : "String with operation message"
        },
        "signatureResultDTOs" : {
          "type" : "array",
          "description" : "List of SignatureResultDTO objects",
          "items" : {
            "$ref" : "#/definitions/SignatureResultDTO"
          }
        }
      },
      "description" : "Response object with result of signature operation"
    },
    "ConfigXadesDTO" : {
      "type" : "object",
      "properties" : {
        "signedInfoCanonicalizationMethod" : {
          "type" : "string"
        },
        "signedPropertiesCanonicalizationMethod" : {
          "type" : "string"
        },
        "toCounterSignSignatureId" : {
          "type" : "string"
        },
        "toCounterSignSignatureValueId" : {
          "type" : "string"
        },
        "trustAnchorBPPolicy" : {
          "type" : "boolean",
          "default" : false
        },
        "claimedSignerRoles" : {
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        },
        "commitmentTypeIndication" : {
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        },
        "transformAlgorithms" : {
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        },
        "xpathLocationString" : {
          "type" : "string"
        }
      }
    },
    "ResponseSignatureResultDTO" : {
      "type" : "object",
      "properties" : {
        "content" : {
          "type" : "string",
          "description" : "Content, optionally filled"
        },
        "httpStatusCode" : {
          "type" : "integer",
          "format" : "int32",
          "description" : "Integer with HttpStatusCode"
        },
        "errorCode" : {
          "type" : "string",
          "description" : "String with error code"
        },
        "message" : {
          "type" : "string",
          "description" : "String with operation message"
        },
        "signatureResultDTO" : {
          "description" : "SignatureResultDTO object",
          "$ref" : "#/definitions/SignatureResultDTO"
        }
      },
      "description" : "Response object with result of signature operation"
    },
    "StamperDTO" : {
      "type" : "object",
      "properties" : {
        "type" : {
          "type" : "string",
          "enum" : [ "PDF417", "QR_BARCODE128", "QR", "BARCODE128", "IMAGE", "TEXT" ]
        },
        "rotation" : {
          "type" : "string",
          "enum" : [ "ROTATE_90", "ROTATE_270" ]
        },
        "width" : {
          "type" : "integer",
          "format" : "int32"
        },
        "height" : {
          "type" : "integer",
          "format" : "int32"
        },
        "getxAxis" : {
          "type" : "integer",
          "format" : "int32"
        },
        "getyAxis" : {
          "type" : "integer",
          "format" : "int32"
        },
        "page" : {
          "type" : "integer",
          "format" : "int32"
        },
        "csvPath" : {
          "type" : "string"
        },
        "textLine1" : {
          "type" : "string"
        },
        "textLine2" : {
          "type" : "string"
        },
        "textLine3" : {
          "type" : "string"
        },
        "image" : {
          "type" : "array",
          "items" : {
            "type" : "string",
            "format" : "byte"
          }
        },
        "logo" : {
          "type" : "array",
          "items" : {
            "type" : "string",
            "format" : "byte"
          }
        },
        "signingDate" : {
          "type" : "string",
          "format" : "date-time"
        }
      }
    },
    "SignatureOperationStatusDTO" : {
      "type" : "object",
      "properties" : {
        "status" : {
          "type" : "string",
          "description" : "Signature status can be: ACTIVE, EXPIRED, FINISHED or INVALID",
          "enum" : [ "ACTIVE", "EXPIRED", "FINISHED", "INVALID" ]
        },
        "message" : {
          "type" : "string",
          "description" : "Message about the operation status"
        },
        "signatureResult" : {
          "description" : "The signature result if the status is FINISHED",
          "$ref" : "#/definitions/SignatureResultDTO"
        },
        "signatureCode" : {
          "type" : "string",
          "description" : "The signature code"
        }
      },
      "description" : "Object with signature operation status"
    },
    "PublicKey" : {
      "type" : "object",
      "properties" : {
        "format" : {
          "type" : "string"
        },
        "algorithm" : {
          "type" : "string"
        },
        "encoded" : {
          "type" : "array",
          "items" : {
            "type" : "string",
            "format" : "byte"
          }
        }
      }
    },
    "SignatureTemplateDTO" : {
      "type" : "object",
      "properties" : {
        "code" : {
          "type" : "string"
        },
        "signatureConfiguration" : {
          "$ref" : "#/definitions/SignatureConfigurationDTO"
        }
      }
    },
    "RestResponseDTO" : {
      "type" : "object",
      "properties" : {
        "content" : {
          "type" : "string",
          "description" : "Content, optionally filled"
        },
        "httpStatusCode" : {
          "type" : "integer",
          "format" : "int32",
          "description" : "Integer with HttpStatusCode"
        },
        "errorCode" : {
          "type" : "string",
          "description" : "String with error code"
        },
        "message" : {
          "type" : "string",
          "description" : "String with operation message"
        }
      },
      "description" : "Response Object"
    },
    "XMLDeviceDTO" : {
      "type" : "object",
      "properties" : {
        "manufacturer" : {
          "type" : "string"
        },
        "model" : {
          "type" : "string"
        },
        "osVersion" : {
          "type" : "string"
        }
      }
    },
    "ResponseSignatureOperationStatusDTO" : {
      "type" : "object",
      "properties" : {
        "content" : {
          "type" : "string",
          "description" : "Content, optionally filled"
        },
        "httpStatusCode" : {
          "type" : "integer",
          "format" : "int32",
          "description" : "Integer with HttpStatusCode"
        },
        "errorCode" : {
          "type" : "string",
          "description" : "String with error code"
        },
        "message" : {
          "type" : "string",
          "description" : "String with operation message"
        },
        "signatureOperationStatusDTO" : {
          "description" : "SignatureOperationStatusDTO object",
          "$ref" : "#/definitions/SignatureOperationStatusDTO"
        }
      },
      "description" : "Result object with signature operation status"
    },
    "ResumeSignatureRequestDTO" : {
      "type" : "object",
      "properties" : {
        "operationCode" : {
          "type" : "string"
        },
        "certificateB64" : {
          "type" : "string"
        }
      }
    },
    "SignatureOperationDTO" : {
      "type" : "object",
      "properties" : {
        "configSignatureDTO" : {
          "description" : "Config signature object",
          "$ref" : "#/definitions/ConfigSignatureDTO"
        },
        "hashDataToSign" : {
          "type" : "array",
          "description" : "Array of bytes with data to sign",
          "items" : {
            "type" : "string",
            "format" : "byte"
          }
        }
      },
      "description" : "Object with signature operation data"
    },
    "VerifierOcspDTO" : {
      "type" : "object",
      "properties" : {
        "responseDate" : {
          "type" : "string",
          "format" : "date-time"
        },
        "responseOcsp" : {
          "type" : "string"
        }
      }
    },
    "XMLPdfPageHashes" : {
      "type" : "object",
      "properties" : {
        "pages" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/XMLPdfPageHash"
          }
        }
      }
    },
    "FinalizeSignatureRequestDTO" : {
      "type" : "object",
      "properties" : {
        "operationCodes" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/RawSignatureDataDTO"
          }
        }
      }
    },
    "X509Certificate" : {
      "type" : "object",
      "properties" : {
        "type" : {
          "type" : "string"
        },
        "subjectX500Principal" : {
          "$ref" : "#/definitions/X500Principal"
        },
        "issuerX500Principal" : {
          "$ref" : "#/definitions/X500Principal"
        },
        "issuerDN" : {
          "$ref" : "#/definitions/Principal"
        },
        "subjectDN" : {
          "$ref" : "#/definitions/Principal"
        },
        "serialNumber" : {
          "type" : "integer",
          "format" : "int64"
        },
        "notBefore" : {
          "type" : "string",
          "format" : "date-time"
        },
        "notAfter" : {
          "type" : "string",
          "format" : "date-time"
        },
        "tbscertificate" : {
          "type" : "array",
          "items" : {
            "type" : "string",
            "format" : "byte"
          }
        },
        "sigAlgName" : {
          "type" : "string"
        },
        "sigAlgOID" : {
          "type" : "string"
        },
        "sigAlgParams" : {
          "type" : "array",
          "items" : {
            "type" : "string",
            "format" : "byte"
          }
        },
        "issuerUniqueID" : {
          "type" : "array",
          "items" : {
            "type" : "boolean"
          }
        },
        "subjectUniqueID" : {
          "type" : "array",
          "items" : {
            "type" : "boolean"
          }
        },
        "keyUsage" : {
          "type" : "array",
          "items" : {
            "type" : "boolean"
          }
        },
        "extendedKeyUsage" : {
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        },
        "subjectAlternativeNames" : {
          "type" : "array",
          "items" : {
            "type" : "array",
            "items" : {
              "type" : "object"
            }
          }
        },
        "issuerAlternativeNames" : {
          "type" : "array",
          "items" : {
            "type" : "array",
            "items" : {
              "type" : "object"
            }
          }
        },
        "version" : {
          "type" : "integer",
          "format" : "int32"
        },
        "signature" : {
          "type" : "array",
          "items" : {
            "type" : "string",
            "format" : "byte"
          }
        },
        "basicConstraints" : {
          "type" : "integer",
          "format" : "int32"
        },
        "criticalExtensionOIDs" : {
          "type" : "array",
          "uniqueItems" : true,
          "items" : {
            "type" : "string"
          }
        },
        "nonCriticalExtensionOIDs" : {
          "type" : "array",
          "uniqueItems" : true,
          "items" : {
            "type" : "string"
          }
        },
        "encoded" : {
          "type" : "array",
          "items" : {
            "type" : "string",
            "format" : "byte"
          }
        },
        "publicKey" : {
          "$ref" : "#/definitions/PublicKey"
        }
      }
    },
    "ConfigTsaDTO" : {
      "type" : "object",
      "properties" : {
        "type" : {
          "type" : "string",
          "enum" : [ "URL", "USER", "CERTIFICATE", "LOCAL" ]
        },
        "url" : {
          "type" : "string"
        },
        "user" : {
          "type" : "string"
        },
        "password" : {
          "type" : "string"
        },
        "localCert" : {
          "$ref" : "#/definitions/CertificateDTO"
        }
      }
    },
    "ConfigSignatureDTO" : {
      "type" : "object",
      "properties" : {
        "idReference" : {
          "type" : "string"
        },
        "signatureAlgorithm" : {
          "type" : "string",
          "enum" : [ "RSA_SHA1", "RSA_SHA224", "RSA_SHA256", "RSA_SHA384", "RSA_SHA512" ]
        },
        "custodyCode" : {
          "type" : "string"
        },
        "custodyStorage" : {
          "type" : "boolean",
          "default" : false
        },
        "custodyEncrypted" : {
          "type" : "boolean",
          "default" : false
        },
        "auditoryCipherDisable" : {
          "type" : "boolean",
          "default" : false
        },
        "revocationType" : {
          "type" : "string",
          "enum" : [ "DEFAULT", "ONLINE", "ONLINE_WITH_CACHE", "CRL", "CRL_CACHE", "OCSP", "OFFLINE" ]
        },
        "tsa" : {
          "$ref" : "#/definitions/ConfigTsaDTO"
        },
        "signatureType" : {
          "type" : "string",
          "enum" : [ "CADES_B", "CADES_T", "CADES_LT", "CADES_LTA", "PADES_B", "PADES_T", "PADES_LT", "PADES_LTA", "XADES_B", "XADES_T", "XADES_LT", "XADES_LTA" ]
        },
        "packaging" : {
          "type" : "string",
          "enum" : [ "ENVELOPED", "ENVELOPING", "DETACHED" ]
        },
        "policy" : {
          "$ref" : "#/definitions/ConfigPolicyDTO"
        },
        "urlCallback" : {
          "type" : "string"
        },
        "validSignerIds" : {
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        },
        "signatureReason" : {
          "type" : "string"
        },
        "country" : {
          "type" : "string"
        },
        "stateOrProvince" : {
          "type" : "string"
        },
        "postalCode" : {
          "type" : "string"
        },
        "city" : {
          "type" : "string"
        },
        "cadesConfig" : {
          "$ref" : "#/definitions/ConfigCadesDTO"
        },
        "padesConfig" : {
          "$ref" : "#/definitions/ConfigPadesDTO"
        },
        "xadesConfig" : {
          "$ref" : "#/definitions/ConfigXadesDTO"
        }
      }
    },
    "CertificateDTO" : {
      "type" : "object",
      "properties" : {
        "privateKey" : {
          "$ref" : "#/definitions/PrivateKey"
        },
        "chain" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/Certificate"
          }
        },
        "certificate" : {
          "$ref" : "#/definitions/X509Certificate"
        },
        "provider" : {
          "type" : "string"
        }
      }
    },
    "SignatureTemplateResultDTO" : {
      "type" : "object",
      "properties" : {
        "creationDate" : {
          "type" : "string",
          "format" : "date-time",
          "description" : "Creation date"
        },
        "code" : {
          "type" : "string",
          "description" : "code"
        },
        "deleteDate" : {
          "type" : "string",
          "format" : "date-time",
          "description" : "Delete date"
        }
      },
      "description" : "Signature template"
    },
    "ResponseSignatureTemplateResultDTO" : {
      "type" : "object",
      "properties" : {
        "content" : {
          "type" : "string",
          "description" : "Content, optionally filled"
        },
        "httpStatusCode" : {
          "type" : "integer",
          "format" : "int32",
          "description" : "Integer with HttpStatusCode"
        },
        "errorCode" : {
          "type" : "string",
          "description" : "String with error code"
        },
        "message" : {
          "type" : "string",
          "description" : "String with operation message"
        },
        "signatureTemplateResultDTO" : {
          "description" : "SignatureTemplateResultDTO object",
          "$ref" : "#/definitions/SignatureTemplateResultDTO"
        }
      },
      "description" : "Response Signature template"
    },
    "SignatureConfigurationDTO" : {
      "type" : "object",
      "properties" : {
        "idReference" : {
          "type" : "string"
        },
        "signatureAlgorithm" : {
          "type" : "string",
          "enum" : [ "RSA_SHA1", "RSA_SHA224", "RSA_SHA256", "RSA_SHA384", "RSA_SHA512" ]
        },
        "custodyCode" : {
          "type" : "string"
        },
        "custodyStorage" : {
          "type" : "boolean",
          "default" : false
        },
        "custodyEncrypted" : {
          "type" : "boolean",
          "default" : false
        },
        "auditoryCipherDisable" : {
          "type" : "boolean",
          "default" : false
        },
        "revocationType" : {
          "type" : "string",
          "enum" : [ "DEFAULT", "ONLINE", "ONLINE_WITH_CACHE", "CRL", "CRL_CACHE", "OCSP", "OFFLINE" ]
        },
        "tsa" : {
          "$ref" : "#/definitions/ConfigTsaDTO"
        },
        "signatureType" : {
          "type" : "string",
          "enum" : [ "CADES_B", "CADES_T", "CADES_LT", "CADES_LTA", "PADES_B", "PADES_T", "PADES_LT", "PADES_LTA", "XADES_B", "XADES_T", "XADES_LT", "XADES_LTA" ]
        },
        "packaging" : {
          "type" : "string",
          "enum" : [ "ENVELOPED", "ENVELOPING", "DETACHED" ]
        },
        "policy" : {
          "$ref" : "#/definitions/ConfigPolicyDTO"
        },
        "urlCallback" : {
          "type" : "string"
        },
        "validSignerIds" : {
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        },
        "signatureReason" : {
          "type" : "string"
        },
        "country" : {
          "type" : "string"
        },
        "stateOrProvince" : {
          "type" : "string"
        },
        "postalCode" : {
          "type" : "string"
        },
        "city" : {
          "type" : "string"
        },
        "cadesConfig" : {
          "$ref" : "#/definitions/ConfigCadesDTO"
        },
        "padesConfig" : {
          "$ref" : "#/definitions/ConfigPadesDTO"
        },
        "xadesConfig" : {
          "$ref" : "#/definitions/ConfigXadesDTO"
        },
        "alias" : {
          "type" : "string",
          "description" : "Alias"
        },
        "password" : {
          "type" : "string",
          "description" : "Password"
        },
        "callBack" : {
          "type" : "string",
          "description" : "Callback"
        }
      },
      "description" : "Object with signature configuration data"
    },
    "X500Principal" : {
      "type" : "object",
      "properties" : {
        "name" : {
          "type" : "string"
        },
        "encoded" : {
          "type" : "array",
          "items" : {
            "type" : "string",
            "format" : "byte"
          }
        }
      }
    },
    "Principal" : {
      "type" : "object",
      "properties" : {
        "name" : {
          "type" : "string"
        }
      }
    },
    "VerifierCertificateDTO" : {
      "type" : "object",
      "properties" : {
        "certX509Base64" : {
          "type" : "string"
        },
        "subject" : {
          "type" : "string"
        },
        "issuer" : {
          "type" : "string"
        },
        "notafter" : {
          "type" : "string",
          "format" : "date-time"
        },
        "notbefore" : {
          "type" : "string",
          "format" : "date-time"
        },
        "signAlgName" : {
          "type" : "string"
        },
        "signAlgOID" : {
          "type" : "string"
        },
        "type" : {
          "type" : "string"
        },
        "version" : {
          "type" : "string"
        },
        "serialNumber" : {
          "type" : "string"
        },
        "keyUsage" : {
          "$ref" : "#/definitions/VerifierKeyUsageDTO"
        },
        "oids" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/VerifierOidDTO"
          }
        },
        "validation" : {
          "$ref" : "#/definitions/VerifierDTO"
        },
        "policyIdentifier" : {
          "type" : "string"
        },
        "expired" : {
          "type" : "boolean",
          "default" : false
        },
        "selfSigned" : {
          "type" : "boolean",
          "default" : false
        },
        "trusted" : {
          "type" : "boolean",
          "default" : false
        },
        "trustedSource" : {
          "type" : "string",
          "enum" : [ "TSL", "KS" ]
        }
      }
    },
    "ResponseSignatureOperationDTO" : {
      "type" : "object",
      "properties" : {
        "content" : {
          "type" : "string",
          "description" : "Content, optionally filled"
        },
        "httpStatusCode" : {
          "type" : "integer",
          "format" : "int32",
          "description" : "Integer with HttpStatusCode"
        },
        "errorCode" : {
          "type" : "string",
          "description" : "String with error code"
        },
        "message" : {
          "type" : "string",
          "description" : "String with operation message"
        },
        "signatureOperationDTO" : {
          "description" : "SignatureOperationDTO object",
          "$ref" : "#/definitions/SignatureOperationDTO"
        }
      },
      "description" : "Response object with signature operation data"
    },
    "Certificate" : {
      "type" : "object",
      "properties" : {
        "type" : {
          "type" : "string"
        },
        "encoded" : {
          "type" : "array",
          "items" : {
            "type" : "string",
            "format" : "byte"
          }
        },
        "publicKey" : {
          "$ref" : "#/definitions/PublicKey"
        }
      }
    },
    "VerifierDocumentDTO" : {
      "type" : "object",
      "properties" : {
        "signatureCode" : {
          "$ref" : "#/definitions/SignatureCodeDTO"
        },
        "validationTime" : {
          "type" : "string",
          "format" : "date-time"
        },
        "signaturesCount" : {
          "type" : "integer",
          "format" : "int32"
        },
        "validSignaturesCount" : {
          "type" : "integer",
          "format" : "int32"
        },
        "evidencesCount" : {
          "type" : "integer",
          "format" : "int32"
        },
        "validEvidencesCount" : {
          "type" : "integer",
          "format" : "int32"
        },
        "signatures" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/VerifierSignatureDTO"
          }
        },
        "evidences" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/VerifierEvidenceDTO"
          }
        },
        "pagesHashes" : {
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        }
      }
    },
    "VerifierKeyUsageDTO" : {
      "type" : "object",
      "properties" : {
        "digitalSignature" : {
          "type" : "boolean",
          "default" : false
        },
        "nonRepudiation" : {
          "type" : "boolean",
          "default" : false
        },
        "keyEncipherment" : {
          "type" : "boolean",
          "default" : false
        },
        "dataEncipherment" : {
          "type" : "boolean",
          "default" : false
        },
        "keyAgreement" : {
          "type" : "boolean",
          "default" : false
        },
        "keyCertSign" : {
          "type" : "boolean",
          "default" : false
        },
        "iscRLSign" : {
          "type" : "boolean",
          "default" : false
        },
        "encipherOnly" : {
          "type" : "boolean",
          "default" : false
        },
        "decipherOnly" : {
          "type" : "boolean",
          "default" : false
        }
      }
    }
  }
}

JSON is valid. The problem occurs with /verify methods, if I comment this section on my API REST it generates correctly. I'm using lastest swagger-ui, this is 2.1.4.

Thanks for your support.

webron commented 8 years ago

This may be a valid JSON, but it's not a valid Swagger spec. Haven't looked into all issues, but:

How are you generating the spec? You should run it through a validator to make sure it's valid.

jtorres-viavansi commented 8 years ago

Hi, it's generated using annotations in Java classes and starting swagger as servlet. As I say if I comment /verify/ methods it generates right, however it can't generate when I uncomment then. There is no console or javascript error, If I examine traffic in firefox the petition is completed correctly.

Thanks.

jtorres-viavansi commented 8 years ago

More info, I've located the problem. I've validated generated JSON against Swagger API 2.0 and it's valid, however the problem is the definitios sections. In the verify methods it's used a object of type "VerifierOidDTO", a JAva class as follows:

public class VerifierOidDTO  implements Serializable{

    private static final long serialVersionUID = 1L;

    private String oid;
    private String description;
    private List<String> values;
    private List<VerifierOidDTO> childOids;
    private boolean objectIdentifier;

However Swagger generates a incomplete definition type:

    "VerifierOidDTO" : {
      "type" : "object",
      "properties" : {
        "oid" : {
          "type" : "string"
        },
        "description" : {
          "type" : "string"
        },
        "values" : {
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        },
        "childOids" : {
          "type" : "array"
        },
        "objectIdentifier" : {
          "type" : "boolean",
          "default" : false
        }
      }
    },

childOids is not correctly generated, it should be as follows:

    "VerifierOidDTO" : {
      "type" : "object",
      "properties" : {
        "oid" : {
          "type" : "string"
        },
        "description" : {
          "type" : "string"
        },
        "values" : {
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        },
        "childOids" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/definitions/VerifierOidDTO"
          }
        },
        "objectIdentifier" : {
          "type" : "boolean",
          "default" : false
        }
      }
    },

It seems that Swagger has a bug when trying to generate a $ref to itself definition, maybe?

Thanks.

jtorres-viavansi commented 8 years ago

Got it, I've updated swagger-jersey2-jaxrs version and it works.