sig
  type t = {
    fileLocation : Sarif.FileLocation.t;
    parentKey : string;
    offset : int;
    length : int;
    roles : Sarif.Role.t list;
    mimeType : string;
    contents : Sarif.FileContent.t;
    encoding : string;
    hashes : Sarif.Hash.t list;
    lastModifiedTime : string;
    properties : Sarif.Properties.t;
  }
  val to_yojson : Sarif.File.t -> Yojson.Safe.t
  val of_yojson :
    Yojson.Safe.t -> Sarif.File.t Ppx_deriving_yojson_runtime.error_or
  val _ : Yojson.Safe.t -> Sarif.File.t Ppx_deriving_yojson_runtime.error_or
  val create :
    ?fileLocation:Sarif.FileLocation.t ->
    ?parentKey:string ->
    ?offset:int ->
    ?length:int ->
    ?roles:Sarif.Role.t list ->
    ?mimeType:string ->
    ?contents:Sarif.FileContent.t ->
    ?encoding:string ->
    ?hashes:Sarif.Hash.t list ->
    ?lastModifiedTime:string ->
    ?properties:Sarif.Properties.t -> unit -> Sarif.File.t
end