sig
  type t = {
    description : Sarif.Message.t;
    location : Sarif.ArtifactLocation.t;
    parentIndex : int;
    offset : int;
    length : int;
    roles : Sarif.Role.t list;
    mimeType : string;
    contents : Sarif.ArtifactContent.t;
    encoding : string;
    sourceLanguage : string;
    hashes : Sarif.JsonStringDictionary.t;
    lastModifiedTimeUtc : string;
    properties : Sarif.Properties.t;
  }
  val to_yojson : Sarif.Artifact.t -> Yojson.Safe.t
  val of_yojson :
    Yojson.Safe.t -> Sarif.Artifact.t Ppx_deriving_yojson_runtime.error_or
  val _ :
    Yojson.Safe.t -> Sarif.Artifact.t Ppx_deriving_yojson_runtime.error_or
  val create :
    ?description:Sarif.Message.t ->
    ?location:Sarif.ArtifactLocation.t ->
    ?parentIndex:int ->
    ?offset:int ->
    ?length:int ->
    ?roles:Sarif.Role.t list ->
    ?mimeType:string ->
    ?contents:Sarif.ArtifactContent.t ->
    ?encoding:string ->
    ?sourceLanguage:string ->
    ?hashes:Sarif.JsonStringDictionary.t ->
    ?lastModifiedTimeUtc:string ->
    ?properties:Sarif.Properties.t -> unit -> Sarif.Artifact.t
end