{
  "openapi" : "3.0.1",
  "info" : {
    "title" : "Bioserver API",
    "description" : "This is the Bioserver APIs definition based on OpenAPI v3 specification",
    "termsOfService" : "https://www.idemia.com/general-terms-use",
    "license" : {
      "name" : "IDEMIA Restricted"
    },
    "version" : "3.36.0"
  },
  "servers" : [ {
    "url" : "HOST"
  } ],
  "tags" : [ {
    "name" : "BioSession",
    "description" : "APIs related to a bio-session"
  }, {
    "name" : "Monitoring",
    "description" : "APIS for Server monitoring"
  }, {
    "name" : "Faces",
    "description" : "APIS related to Face operations"
  }, {
    "name" : "Matching",
    "description" : "APIS related to Face matching"
  }, {
    "name" : "ReplayLiveness",
    "description" : "APIS for replaying liveness challenge"
  }, {
    "name" : "AgeEstimation",
    "description" : "APIS related to Age estimation"
  } ],
  "paths" : {
    "/bioserver-app/v2/ages" : {
      "post" : {
        "tags" : [ "AgeEstimation" ],
        "summary" : "Estimate face age",
        "description" : "Creates a face template from an image and estimate the age",
        "operationId" : "createDirectAgeFromImage",
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "required" : [ "age", "image" ],
                "type" : "object",
                "properties" : {
                  "age" : {
                    "type" : "string",
                    "description" : "Age metadata (JSON format)",
                    "format" : "binary"
                  },
                  "correlationId" : {
                    "type" : "string",
                    "description" : "Correlation identifier"
                  },
                  "evidenceId" : {
                    "type" : "string",
                    "description" : "Evidence identifier"
                  },
                  "image" : {
                    "type" : "string",
                    "description" : "Face image to process",
                    "format" : "binary"
                  }
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Returns the estimated age",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Age"
                }
              }
            }
          },
          "400" : {
            "description" : "Something is wrong with the request"
          },
          "401" : {
            "description" : "Authentication is required"
          },
          "413" : {
            "description" : "The request was too big"
          }
        }
      }
    },
    "/bioserver-app/v2/bio-sessions" : {
      "post" : {
        "tags" : [ "BioSession" ],
        "summary" : "Create a bio-session",
        "description" : "Creates a bio-session and returns sessionId in response header",
        "operationId" : "createBioSession",
        "requestBody" : {
          "description" : "Session content",
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BioSession"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "description" : "Returns the location in HTTP headers",
            "headers" : {
              "Location" : {
                "description" : "location of created session with the sessionId",
                "style" : "SIMPLE",
                "schema" : {
                  "type" : "string",
                  "example" : "Location: /v2/bio-sessions/0991cedc-9111-4b9d-9e4e-8d6eb4db488f"
                }
              }
            }
          },
          "400" : {
            "description" : "Something is wrong with the request"
          },
          "401" : {
            "description" : "Authentication is required"
          },
          "403" : {
            "description" : "Missing permissions to create the bio-session"
          },
          "429" : {
            "description" : "Server is currently experiencing high demand. Please try your request again in a few minutes"
          }
        }
      }
    },
    "/bioserver-app/v2/bio-sessions/{bioSessionId}" : {
      "get" : {
        "tags" : [ "BioSession" ],
        "summary" : "Get bio-session info",
        "description" : "Retrieves bio-session info by id",
        "operationId" : "getBioSession",
        "parameters" : [ {
          "name" : "bioSessionId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Returns the bio-session",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BioSession"
                }
              }
            }
          },
          "400" : {
            "description" : "Something is wrong with the request"
          },
          "401" : {
            "description" : "Authentication is required"
          },
          "403" : {
            "description" : "Missing permissions to retrieve the bio-session"
          },
          "404" : {
            "description" : "Unable to find a bio-session for the given identifier"
          }
        }
      }
    },
    "/bioserver-app/v2/bio-sessions/{bioSessionId}/faces" : {
      "get" : {
        "tags" : [ "Faces" ],
        "summary" : "Get session face templates",
        "description" : "Retrieves a list of all face templates created under the same session",
        "operationId" : "getFaces",
        "parameters" : [ {
          "name" : "bioSessionId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "List of ordered matches",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Face"
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Something is wrong with the request"
          },
          "401" : {
            "description" : "Authentication is required"
          },
          "403" : {
            "description" : "Missing permissions to retrieve the bio-session"
          },
          "404" : {
            "description" : "Unable to find a bio-session for the given identifier"
          }
        }
      },
      "post" : {
        "tags" : [ "Faces" ],
        "summary" : "Create a face template",
        "description" : "Creates a face from an image or a json face template\n- to use an image input, select <b>\"multipart/form-data\"</b>\n- to use a json face template input, select <b>\"application/json\"</b>\n",
        "operationId" : "createFaceFromImageOrTemplate",
        "parameters" : [ {
          "name" : "bioSessionId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "required" : [ "face" ],
                "type" : "object",
                "properties" : {
                  "face" : {
                    "$ref" : "#/components/schemas/Face"
                  }
                }
              }
            },
            "multipart/form-data" : {
              "schema" : {
                "required" : [ "face", "image" ],
                "type" : "object",
                "properties" : {
                  "face" : {
                    "type" : "string",
                    "description" : "Face metadata (JSON format)",
                    "format" : "binary"
                  },
                  "image" : {
                    "type" : "string",
                    "description" : "Face image to process",
                    "format" : "binary"
                  }
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "description" : "Returns in headers the location",
            "headers" : {
              "Location" : {
                "description" : "location of created face with the faceId",
                "style" : "SIMPLE",
                "schema" : {
                  "type" : "string",
                  "example" : "Location: /v2/bio-sessions/0991cedc-9111-4b9d-9e4e-8d6eb4db488f/faces/aa0bd6ca-1206-415b-af94-8d2c18aa9c70"
                }
              }
            }
          },
          "400" : {
            "description" : "Something is wrong with the request"
          },
          "401" : {
            "description" : "Authentication is required"
          },
          "403" : {
            "description" : "Missing permissions to retrieve the bio-session"
          },
          "404" : {
            "description" : "Unable to find a bio-session for the given identifier"
          },
          "413" : {
            "description" : "The request was too big"
          }
        }
      },
      "delete" : {
        "tags" : [ "Faces" ],
        "summary" : "Delete all session faces",
        "description" : "Deletes the entire collection of faces under the provided session",
        "operationId" : "deleteAllFaces",
        "parameters" : [ {
          "name" : "bioSessionId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "No Content",
            "content" : {
              "*/*" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Face"
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Something is wrong with the request"
          },
          "401" : {
            "description" : "Authentication is required"
          },
          "403" : {
            "description" : "Missing permissions to retrieve the bio-session"
          },
          "404" : {
            "description" : "Unable to find a bio-session for the given identifier"
          }
        }
      }
    },
    "/bioserver-app/v2/bio-sessions/{bioSessionId}/faces/{faceId}" : {
      "get" : {
        "tags" : [ "Faces" ],
        "summary" : "Get face template",
        "description" : "Retrieves a face template already created in the provided bio-session",
        "operationId" : "getFace",
        "parameters" : [ {
          "name" : "bioSessionId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "faceId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Returns the face created",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Face"
                }
              }
            }
          },
          "400" : {
            "description" : "Something is wrong with the request"
          },
          "401" : {
            "description" : "Authentication is required"
          },
          "403" : {
            "description" : "Missing permissions to retrieve the bio-session"
          },
          "404" : {
            "description" : "Unable to find a bio-session for the given identifier"
          }
        }
      },
      "delete" : {
        "tags" : [ "Faces" ],
        "summary" : "Delete a face",
        "description" : "Deletes the face from the session related to the provided id",
        "operationId" : "deleteFace",
        "parameters" : [ {
          "name" : "bioSessionId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "faceId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Returns no content"
          },
          "400" : {
            "description" : "Something is wrong with the request"
          },
          "401" : {
            "description" : "Authentication is required"
          },
          "403" : {
            "description" : "Missing permissions to retrieve the bio-session"
          },
          "404" : {
            "description" : "Unable to find a bio-session for the given identifier"
          }
        }
      }
    },
    "/bioserver-app/v2/bio-sessions/{bioSessionId}/faces/{faceId}/image" : {
      "get" : {
        "tags" : [ "Faces" ],
        "summary" : "Create a face image",
        "description" : "Retrieves a face image already created in the provided bio-session (with a specific compression)",
        "operationId" : "getFaceImage",
        "parameters" : [ {
          "name" : "bioSessionId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "faceId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "compression",
          "in" : "query",
          "schema" : {
            "type" : "boolean",
            "default" : false
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Returns the face image",
            "content" : {
              "application/octet-stream" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Face"
                }
              }
            }
          },
          "400" : {
            "description" : "Something is wrong with the request"
          },
          "401" : {
            "description" : "Authentication is required"
          },
          "403" : {
            "description" : "Missing permissions to retrieve the bio-session"
          },
          "404" : {
            "description" : "Unable to find a bio-session for the given identifier"
          }
        }
      }
    },
    "/bioserver-app/v2/bio-sessions/{bioSessionId}/faces/{faceId}/matches" : {
      "get" : {
        "tags" : [ "Faces" ],
        "summary" : "Match faces",
        "description" : "proceed to face match between the provided face id and all stored faces in the same session (sorted by matching score)",
        "operationId" : "getMatches",
        "parameters" : [ {
          "name" : "bioSessionId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "faceId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "List of ordered matches",
            "content" : {
              "application/json" : {
                "schema" : {
                  "type" : "array",
                  "items" : {
                    "$ref" : "#/components/schemas/Match"
                  }
                }
              }
            }
          },
          "400" : {
            "description" : "Something is wrong with the request"
          },
          "401" : {
            "description" : "Authentication is required"
          },
          "403" : {
            "description" : "Missing permissions to retrieve the bio-session"
          },
          "404" : {
            "description" : "Unable to find a bio-session for the given identifier"
          }
        }
      }
    },
    "/bioserver-app/v2/bio-sessions/{bioSessionId}/init-liveness-parameters" : {
      "post" : {
        "tags" : [ "ReplayLiveness" ],
        "summary" : "Initiates a liveness session",
        "description" : "Initiates a replay liveness metadata for the current session",
        "operationId" : "initLiveness",
        "parameters" : [ {
          "name" : "bioSessionId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/InLivenessParameters"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Liveness session created",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OutLivenessParameters"
                }
              }
            }
          },
          "400" : {
            "description" : "Something is wrong with the request"
          },
          "401" : {
            "description" : "Authentication is required"
          },
          "403" : {
            "description" : "Missing permissions to retrieve the bio-session"
          },
          "404" : {
            "description" : "Unable to find a bio-session for the given identifier"
          }
        }
      }
    },
    "/bioserver-app/v2/bio-sessions/{bioSessionId}/liveness-challenge-result" : {
      "get" : {
        "tags" : [ "ReplayLiveness" ],
        "summary" : "Get replay metadata results",
        "description" : "Retrieves liveness challenge result from the session",
        "operationId" : "getLivenessChallengeResult",
        "parameters" : [ {
          "name" : "bioSessionId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Liveness challenge result"
          },
          "400" : {
            "description" : "Something is wrong with the request"
          },
          "401" : {
            "description" : "Authentication is required"
          },
          "403" : {
            "description" : "Missing permissions to create the bio-session"
          },
          "404" : {
            "description" : "Unable to find a bio-session for the given identifier"
          }
        }
      }
    },
    "/bioserver-app/v2/capabilities" : {
      "get" : {
        "tags" : [ "Monitoring" ],
        "summary" : "Get server info",
        "description" : "Returns Server version and capabilities",
        "operationId" : "capabilities",
        "responses" : {
          "200" : {
            "description" : "Returns server version and capabilities"
          },
          "500" : {
            "description" : "The instance is not working properly"
          }
        }
      }
    },
    "/bioserver-app/v2/faces" : {
      "post" : {
        "tags" : [ "Faces" ],
        "summary" : "Create a face template without session",
        "description" : "Creates a face template from an image without session",
        "operationId" : "createDirectFaceFromImage",
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "required" : [ "face", "image" ],
                "type" : "object",
                "properties" : {
                  "correlationId" : {
                    "type" : "string",
                    "description" : "Correlation identifier"
                  },
                  "evidenceId" : {
                    "type" : "string",
                    "description" : "Evidence identifier"
                  },
                  "face" : {
                    "type" : "string",
                    "description" : "Face metadata (JSON format)",
                    "format" : "binary"
                  },
                  "image" : {
                    "type" : "string",
                    "description" : "Face image to process",
                    "format" : "binary"
                  }
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Returns the face created",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Face"
                }
              }
            }
          },
          "400" : {
            "description" : "Something is wrong with the request"
          },
          "401" : {
            "description" : "Authentication is required"
          },
          "413" : {
            "description" : "The request was too big"
          }
        }
      }
    },
    "/bioserver-app/v2/match" : {
      "post" : {
        "tags" : [ "Matching" ],
        "summary" : "Match template-vs-image",
        "description" : "Matches a face template against a face image",
        "operationId" : "match",
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "required" : [ "candidateImage", "candidateImageType", "referenceFace" ],
                "type" : "object",
                "properties" : {
                  "candidateImage" : {
                    "type" : "string",
                    "description" : "A candidate face image to process",
                    "format" : "binary"
                  },
                  "candidateImageType" : {
                    "type" : "string",
                    "enum" : [ "ID_DOCUMENT", "SELFIE", "VIDEO_FRAME" ]
                  },
                  "correlationId" : {
                    "type" : "string",
                    "description" : "Correlation identifier"
                  },
                  "evidenceId" : {
                    "type" : "string",
                    "description" : "Evidence identifier"
                  },
                  "imageRotationEnabled" : {
                    "type" : "boolean",
                    "description" : "To enable image rotation for coding. Do not use if the image is not rotated. Recommendation is to use oriented images and not use this parameter for performance reasons"
                  },
                  "referenceFace" : {
                    "$ref" : "#/components/schemas/Face"
                  }
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Returns a single match object computed from a reference face (a previous face JSON) and a candidate face image",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Match"
                }
              }
            }
          },
          "400" : {
            "description" : "Something is wrong with the request"
          },
          "401" : {
            "description" : "Authentication is required"
          },
          "403" : {
            "description" : "Missing permissions to create the face"
          },
          "413" : {
            "description" : "The request was too big"
          }
        }
      }
    },
    "/bioserver-app/v2/match/images" : {
      "post" : {
        "tags" : [ "Matching" ],
        "summary" : "Match image-vs-image",
        "description" : "Matches two input images and returns matching score",
        "operationId" : "matchImages",
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "required" : [ "candidateImage", "candidateImageType", "referenceImage", "referenceImageType" ],
                "type" : "object",
                "properties" : {
                  "candidateImage" : {
                    "type" : "string",
                    "description" : "A candidate face image to process",
                    "format" : "binary"
                  },
                  "candidateImageType" : {
                    "type" : "string",
                    "enum" : [ "ID_DOCUMENT", "SELFIE", "VIDEO_FRAME" ]
                  },
                  "correlationId" : {
                    "type" : "string",
                    "description" : "Correlation identifier"
                  },
                  "evidenceId" : {
                    "type" : "string",
                    "description" : "Evidence identifier"
                  },
                  "imageRotationEnabled" : {
                    "type" : "boolean",
                    "description" : "To enable image rotation for coding. Do not use if the image is not rotated. Recommendation is to use oriented images and not use this parameter for performance reasons"
                  },
                  "referenceImage" : {
                    "type" : "string",
                    "description" : "A reference face image to process",
                    "format" : "binary"
                  },
                  "referenceImageType" : {
                    "type" : "string",
                    "enum" : [ "ID_DOCUMENT", "SELFIE", "VIDEO_FRAME" ]
                  }
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Returns a single match object computed by 2 images: a reference image and a candidate image",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Match"
                }
              }
            }
          },
          "400" : {
            "description" : "Something is wrong with the request"
          },
          "401" : {
            "description" : "Authentication is required"
          },
          "403" : {
            "description" : "Missing permissions to create the face"
          },
          "413" : {
            "description" : "The request was too big"
          }
        }
      }
    },
    "/bioserver-app/v2/match/template" : {
      "post" : {
        "tags" : [ "Matching" ],
        "summary" : "Match template-vs-template",
        "description" : "Matches two input face templates and returns matching score",
        "operationId" : "matchTemplate",
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "required" : [ "candidateTemplate", "referenceTemplate" ],
                "type" : "object",
                "properties" : {
                  "candidateTemplate" : {
                    "type" : "string",
                    "description" : "A candidate face template to process",
                    "format" : "binary"
                  },
                  "correlationId" : {
                    "type" : "string",
                    "description" : "Correlation identifier"
                  },
                  "evidenceId" : {
                    "type" : "string",
                    "description" : "Evidence identifier"
                  },
                  "referenceTemplate" : {
                    "type" : "string",
                    "description" : "A reference face template to process",
                    "format" : "binary"
                  }
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "Returns a single match object computed by 2 images : a reference image and a candidate image",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Match"
                }
              }
            }
          },
          "400" : {
            "description" : "Something is wrong with the request"
          },
          "401" : {
            "description" : "Authentication is required"
          },
          "403" : {
            "description" : "Missing permissions to create the face"
          },
          "413" : {
            "description" : "The request was too big"
          }
        }
      }
    },
    "/bioserver-app/v3/bio-sessions/{bioSessionId}" : {
      "delete" : {
        "tags" : [ "BioSession" ],
        "summary" : "Delete a bio-session",
        "description" : "Deletes a bio-session",
        "operationId" : "deleteBioSession",
        "parameters" : [ {
          "name" : "bioSessionId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "The session is deleted"
          },
          "400" : {
            "description" : "Something is wrong with the request"
          },
          "401" : {
            "description" : "Authentication is required"
          },
          "403" : {
            "description" : "Forbidden"
          },
          "404" : {
            "description" : "Unable to find a bio-session for the given identifier"
          }
        }
      }
    },
    "/bioserver-app/v3/bio-sessions/{bioSessionId}/replay-liveness-metadata" : {
      "get" : {
        "tags" : [ "ReplayLiveness" ],
        "summary" : "Get liveness replay result",
        "description" : "Retrieves replayed liveness result",
        "operationId" : "getReplayStatus",
        "parameters" : [ {
          "name" : "bioSessionId",
          "in" : "path",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "Replayed liveness result",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ReplayLivenessResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Something is wrong with the request"
          },
          "401" : {
            "description" : "Authentication is required"
          },
          "403" : {
            "description" : "Forbidden"
          },
          "404" : {
            "description" : "Unable to find a bio-session for the given identifier"
          }
        }
      }
    }
  },
  "components" : {
    "schemas" : {
      "Age" : {
        "required" : [ "threshold" ],
        "type" : "object",
        "properties" : {
          "aboveThreshold" : {
            "type" : "boolean"
          },
          "ageEstimated" : {
            "type" : "number",
            "format" : "float"
          },
          "created" : {
            "type" : "string",
            "format" : "date-time"
          },
          "expires" : {
            "type" : "string",
            "format" : "date-time"
          },
          "signature" : {
            "type" : "string"
          },
          "signatureDisabled" : {
            "type" : "boolean"
          },
          "threshold" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "BioSession" : {
        "type" : "object",
        "properties" : {
          "callbackURL" : {
            "type" : "string",
            "description" : "Callback URL",
            "example" : "https://service/callback"
          },
          "correlationId" : {
            "maxLength" : 100,
            "type" : "string",
            "description" : "Correlation identifier",
            "example" : "gips-679134"
          },
          "created" : {
            "type" : "string",
            "format" : "date-time"
          },
          "evidenceId" : {
            "maxLength" : 100,
            "type" : "string",
            "description" : "Evidence identifier",
            "example" : "891a6728-1ac4-11e7-93ae-92361f002671"
          },
          "expires" : {
            "type" : "string",
            "format" : "date-time"
          },
          "id" : {
            "type" : "string"
          },
          "imageStorageEnabled" : {
            "type" : "boolean"
          },
          "signature" : {
            "type" : "string"
          },
          "signatureDisabled" : {
            "type" : "boolean"
          },
          "ttlSeconds" : {
            "minimum" : 1,
            "type" : "integer",
            "format" : "int64"
          }
        }
      },
      "Box" : {
        "type" : "object",
        "properties" : {
          "created" : {
            "type" : "string",
            "format" : "date-time"
          },
          "expires" : {
            "type" : "string",
            "format" : "date-time"
          },
          "height" : {
            "type" : "integer",
            "format" : "int32"
          },
          "signature" : {
            "type" : "string"
          },
          "signatureDisabled" : {
            "type" : "boolean"
          },
          "width" : {
            "type" : "integer",
            "format" : "int32"
          },
          "x" : {
            "type" : "integer",
            "format" : "int32"
          },
          "y" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "Capabilities" : {
        "type" : "object",
        "properties" : {
          "created" : {
            "type" : "string",
            "format" : "date-time"
          },
          "currentMode" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "enum" : [ "F5_1_VID60", "F5_2_VID75", "F5_3_VID60", "F5_4_IDD60", "F5_4_IDD75", "F5_4_LOW75", "F6_2_VID65", "F6_4_VID60X" ]
            }
          },
          "expires" : {
            "type" : "string",
            "format" : "date-time"
          },
          "signature" : {
            "type" : "string"
          },
          "signatureDisabled" : {
            "type" : "boolean"
          },
          "version" : {
            "type" : "string"
          }
        }
      },
      "Eyes" : {
        "type" : "object",
        "properties" : {
          "created" : {
            "type" : "string",
            "format" : "date-time"
          },
          "expires" : {
            "type" : "string",
            "format" : "date-time"
          },
          "signature" : {
            "type" : "string"
          },
          "signatureDisabled" : {
            "type" : "boolean"
          },
          "x1" : {
            "type" : "number",
            "format" : "float"
          },
          "x2" : {
            "type" : "number",
            "format" : "float"
          },
          "y1" : {
            "type" : "number",
            "format" : "float"
          },
          "y2" : {
            "type" : "number",
            "format" : "float"
          }
        }
      },
      "Face" : {
        "required" : [ "imageType" ],
        "type" : "object",
        "properties" : {
          "buffer" : {
            "type" : "string"
          },
          "created" : {
            "type" : "string",
            "format" : "date-time"
          },
          "digest" : {
            "type" : "string"
          },
          "expires" : {
            "type" : "string",
            "format" : "date-time"
          },
          "friendlyName" : {
            "maxLength" : 100,
            "type" : "string"
          },
          "id" : {
            "type" : "string"
          },
          "imageRotationEnabled" : {
            "type" : "boolean"
          },
          "imageType" : {
            "type" : "string",
            "enum" : [ "ID_DOCUMENT", "SELFIE", "VIDEO_FRAME" ]
          },
          "landmarks" : {
            "$ref" : "#/components/schemas/Landmarks"
          },
          "mode" : {
            "type" : "string",
            "enum" : [ "F5_1_VID60", "F5_2_VID75", "F5_3_VID60", "F5_4_IDD60", "F5_4_IDD75", "F5_4_LOW75", "F6_2_VID65", "F6_4_VID60X" ]
          },
          "quality" : {
            "type" : "integer",
            "format" : "int32"
          },
          "signature" : {
            "type" : "string"
          },
          "signatureDisabled" : {
            "type" : "boolean"
          },
          "template" : {
            "type" : "string"
          },
          "templateVersion" : {
            "type" : "integer",
            "format" : "int32"
          }
        }
      },
      "ImageStorage" : {
        "required" : [ "bucketName", "contentType", "hash", "hashAlgorithm", "key", "region" ],
        "type" : "object",
        "properties" : {
          "bucketName" : {
            "minLength" : 1,
            "type" : "string"
          },
          "contentType" : {
            "minLength" : 1,
            "type" : "string"
          },
          "created" : {
            "type" : "string",
            "format" : "date-time"
          },
          "expires" : {
            "type" : "string",
            "format" : "date-time"
          },
          "hash" : {
            "maxLength" : 128,
            "minLength" : 64,
            "pattern" : "^[0-9A-Fa-f]+$",
            "type" : "string"
          },
          "hashAlgorithm" : {
            "type" : "string",
            "enum" : [ "SHA_256", "HMAC", "SHA256" ]
          },
          "key" : {
            "minLength" : 1,
            "type" : "string"
          },
          "region" : {
            "minLength" : 1,
            "type" : "string"
          },
          "signature" : {
            "type" : "string"
          },
          "signatureDisabled" : {
            "type" : "boolean"
          }
        }
      },
      "InLivenessParameters" : {
        "required" : [ "type" ],
        "type" : "object",
        "properties" : {
          "created" : {
            "type" : "string",
            "format" : "date-time"
          },
          "expires" : {
            "type" : "string",
            "format" : "date-time"
          },
          "id" : {
            "maxLength" : 128,
            "type" : "string"
          },
          "imageRetrievalDisabled" : {
            "type" : "boolean"
          },
          "matchThreshold" : {
            "type" : "integer",
            "format" : "int32",
            "readOnly" : true
          },
          "nativeMockConf" : {
            "type" : "string",
            "readOnly" : true
          },
          "nbChallenge" : {
            "type" : "integer",
            "format" : "int32"
          },
          "securityLevel" : {
            "type" : "string",
            "example" : "HIGH",
            "enum" : [ "LOW", "MEDIUM", "HIGH" ]
          },
          "signature" : {
            "type" : "string"
          },
          "signatureDisabled" : {
            "type" : "boolean"
          },
          "timeout" : {
            "type" : "integer",
            "format" : "int32",
            "readOnly" : true
          },
          "type" : {
            "type" : "string",
            "example" : "LIVENESS_PASSIVE_VIDEO",
            "enum" : [ "LIVENESS_ACTIVE", "LIVENESS_PASSIVE", "LIVENESS_PASSIVE_VIDEO", "LIVENESS_MLC" ]
          }
        }
      },
      "Landmarks" : {
        "type" : "object",
        "properties" : {
          "box" : {
            "$ref" : "#/components/schemas/Box"
          },
          "created" : {
            "type" : "string",
            "format" : "date-time"
          },
          "expires" : {
            "type" : "string",
            "format" : "date-time"
          },
          "eyes" : {
            "$ref" : "#/components/schemas/Eyes"
          },
          "signature" : {
            "type" : "string"
          },
          "signatureDisabled" : {
            "type" : "boolean"
          }
        }
      },
      "LivenessChallengeResult" : {
        "required" : [ "livenessMode", "livenessStatus" ],
        "type" : "object",
        "properties" : {
          "age" : {
            "$ref" : "#/components/schemas/Age"
          },
          "bestImageId" : {
            "type" : "string"
          },
          "created" : {
            "type" : "string",
            "format" : "date-time"
          },
          "deviceInfo" : {
            "$ref" : "#/components/schemas/LivenessDeviceInfo"
          },
          "diagnostic" : {
            "type" : "string"
          },
          "diagnosticCode" : {
            "type" : "string",
            "example" : "NO_FACE_DETECTED",
            "enum" : [ "MOVEMENT_DURING_ILLUMINATION", "TOO_BRIGHT", "NO_FACE_DETECTED" ]
          },
          "expires" : {
            "type" : "string",
            "format" : "date-time"
          },
          "imageStorage" : {
            "$ref" : "#/components/schemas/ImageStorage"
          },
          "livenessMode" : {
            "type" : "string",
            "example" : "LIVENESS_PASSIVE_VIDEO",
            "enum" : [ "LIVENESS_ACTIVE", "LIVENESS_PASSIVE", "LIVENESS_PASSIVE_VIDEO", "LIVENESS_MLC" ]
          },
          "livenessStatus" : {
            "type" : "string",
            "example" : "SUCCESS",
            "enum" : [ "SUCCESS", "FAILED", "SPOOF", "TIMEOUT", "INITIALIZED", "IN_PROGRESS", "ERROR" ]
          },
          "numberOfChallenge" : {
            "type" : "integer",
            "format" : "int32"
          },
          "securityLevel" : {
            "type" : "string"
          },
          "signature" : {
            "type" : "string"
          },
          "signatureDisabled" : {
            "type" : "boolean"
          },
          "videoStorage" : {
            "$ref" : "#/components/schemas/VideoStorage"
          }
        }
      },
      "LivenessDeviceInfo" : {
        "required" : [ "osType", "osVersion" ],
        "type" : "object",
        "properties" : {
          "browserName" : {
            "maxLength" : 100,
            "type" : "string"
          },
          "browserVersion" : {
            "maxLength" : 100,
            "type" : "string"
          },
          "created" : {
            "type" : "string",
            "format" : "date-time"
          },
          "deviceModel" : {
            "maxLength" : 100,
            "type" : "string"
          },
          "expires" : {
            "type" : "string",
            "format" : "date-time"
          },
          "osType" : {
            "maxLength" : 100,
            "type" : "string"
          },
          "osVersion" : {
            "maxLength" : 100,
            "type" : "string"
          },
          "signature" : {
            "type" : "string"
          },
          "signatureDisabled" : {
            "type" : "boolean"
          }
        }
      },
      "LivenessSdkInfoResponse" : {
        "type" : "object",
        "properties" : {
          "created" : {
            "type" : "string",
            "format" : "date-time"
          },
          "expires" : {
            "type" : "string",
            "format" : "date-time"
          },
          "sdkVersion" : {
            "type" : "string"
          },
          "signature" : {
            "type" : "string"
          },
          "signatureDisabled" : {
            "type" : "boolean"
          }
        }
      },
      "Match" : {
        "type" : "object",
        "properties" : {
          "candidate" : {
            "$ref" : "#/components/schemas/Face"
          },
          "correlationId" : {
            "type" : "string"
          },
          "created" : {
            "type" : "string",
            "format" : "date-time"
          },
          "evidenceId" : {
            "type" : "string"
          },
          "expires" : {
            "type" : "string",
            "format" : "date-time"
          },
          "falseAcceptanceRate" : {
            "type" : "number",
            "format" : "double"
          },
          "reference" : {
            "$ref" : "#/components/schemas/Face"
          },
          "score" : {
            "type" : "number",
            "format" : "double"
          },
          "signature" : {
            "type" : "string"
          },
          "signatureDisabled" : {
            "type" : "boolean"
          }
        }
      },
      "OutLivenessParameters" : {
        "required" : [ "certificates", "seed", "type" ],
        "type" : "object",
        "properties" : {
          "certificates" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "correlationId" : {
            "type" : "string"
          },
          "created" : {
            "type" : "string",
            "format" : "date-time"
          },
          "evidenceId" : {
            "type" : "string"
          },
          "expires" : {
            "type" : "string",
            "format" : "date-time"
          },
          "id" : {
            "maxLength" : 128,
            "type" : "string"
          },
          "imageRetrievalDisabled" : {
            "type" : "boolean"
          },
          "matchThreshold" : {
            "type" : "integer",
            "format" : "int32",
            "readOnly" : true
          },
          "nativeMockConf" : {
            "type" : "string",
            "readOnly" : true
          },
          "nbChallenge" : {
            "type" : "integer",
            "format" : "int32"
          },
          "securityLevel" : {
            "type" : "string",
            "example" : "HIGH",
            "enum" : [ "LOW", "MEDIUM", "HIGH" ]
          },
          "seed" : {
            "type" : "integer",
            "format" : "int32"
          },
          "serverRandom" : {
            "type" : "string"
          },
          "signature" : {
            "type" : "string"
          },
          "signatureDisabled" : {
            "type" : "boolean"
          },
          "timeout" : {
            "type" : "integer",
            "format" : "int32",
            "readOnly" : true
          },
          "type" : {
            "type" : "string",
            "example" : "LIVENESS_PASSIVE_VIDEO",
            "enum" : [ "LIVENESS_ACTIVE", "LIVENESS_PASSIVE", "LIVENESS_PASSIVE_VIDEO", "LIVENESS_MLC" ]
          },
          "useAccurateMatch" : {
            "type" : "boolean"
          }
        }
      },
      "ReplayLivenessResponse" : {
        "required" : [ "status" ],
        "type" : "object",
        "properties" : {
          "created" : {
            "type" : "string",
            "format" : "date-time"
          },
          "deviceInfo" : {
            "$ref" : "#/components/schemas/LivenessDeviceInfo"
          },
          "diagnostic" : {
            "type" : "string"
          },
          "diagnosticCode" : {
            "type" : "string",
            "example" : "NO_FACE_DETECTED",
            "enum" : [ "MOVEMENT_DURING_ILLUMINATION", "TOO_BRIGHT", "NO_FACE_DETECTED" ]
          },
          "expires" : {
            "type" : "string",
            "format" : "date-time"
          },
          "id" : {
            "type" : "string"
          },
          "image" : {
            "type" : "string",
            "format" : "byte"
          },
          "imageStorage" : {
            "$ref" : "#/components/schemas/ImageStorage"
          },
          "landmarks" : {
            "$ref" : "#/components/schemas/Landmarks"
          },
          "sdkInfo" : {
            "$ref" : "#/components/schemas/LivenessSdkInfoResponse"
          },
          "signature" : {
            "type" : "string"
          },
          "signatureDisabled" : {
            "type" : "boolean"
          },
          "status" : {
            "type" : "string",
            "example" : "SUCCESS",
            "enum" : [ "SUCCESS", "FAILED", "SPOOF", "TIMEOUT", "INITIALIZED", "IN_PROGRESS", "ERROR" ]
          },
          "videoStorage" : {
            "$ref" : "#/components/schemas/VideoStorage"
          }
        }
      },
      "VideoStorage" : {
        "required" : [ "bucketName", "contentType", "hash", "hashAlgorithm", "key", "region" ],
        "type" : "object",
        "properties" : {
          "bucketName" : {
            "minLength" : 1,
            "type" : "string"
          },
          "contentType" : {
            "minLength" : 1,
            "type" : "string"
          },
          "created" : {
            "type" : "string",
            "format" : "date-time"
          },
          "expires" : {
            "type" : "string",
            "format" : "date-time"
          },
          "hash" : {
            "maxLength" : 128,
            "minLength" : 64,
            "pattern" : "^[0-9A-Fa-f]+$",
            "type" : "string"
          },
          "hashAlgorithm" : {
            "type" : "string",
            "enum" : [ "SHA_256", "HMAC", "SHA256" ]
          },
          "key" : {
            "minLength" : 1,
            "type" : "string"
          },
          "region" : {
            "minLength" : 1,
            "type" : "string"
          },
          "signature" : {
            "type" : "string"
          },
          "signatureDisabled" : {
            "type" : "boolean"
          }
        }
      }
    }
  }
}