sig
  module Contents :
    sig
      type t = private string
      val of_yojson : Yojson.Safe.t -> t Ppx_deriving_yojson_runtime.error_or
      val to_yojson : t -> Yojson.Safe.t
      val localizedData : t
      val nonLocalizedData : t
    end
  type t = {
    guid : string;
    name : string;
    organization : string;
    product : string;
    productSuite : string;
    shortDescription : Sarif.MultiformatMessageString.t;
    fullDescription : Sarif.MultiformatMessageString.t;
    fullName : string;
    version : string;
    semanticVersion : string;
    dottedQuadFileVersion : string;
    releaseDateUtc : string;
    downloadUri : string;
    informationUri : string;
    globalMessageStrings : Sarif.MultiformatMessageStringDictionary.t;
    notifications : Sarif.ReportingDescriptor.t list;
    rules : Sarif.ReportingDescriptor.t list;
    taxa : Sarif.ReportingDescriptor.t list;
    locations : Sarif.ArtifactLocation.t list;
    language : string;
    contents : Sarif.ToolComponent.Contents.t list;
    isComprehensive : bool;
    localizedDataSemanticVersion : string;
    minimumRequiredLocalizedDataSemanticVersion : string;
    associateComponent : Sarif.ToolComponentReference.t;
    translationMetadata : Sarif.TranslationMetadata.t;
    supportedTaxonomies : Sarif.ToolComponentReference.t list;
    properties : Sarif.Properties.t;
  }
  val to_yojson : Sarif.ToolComponent.t -> Yojson.Safe.t
  val of_yojson :
    Yojson.Safe.t ->
    Sarif.ToolComponent.t Ppx_deriving_yojson_runtime.error_or
  val create :
    ?guid:string ->
    name:string ->
    ?organization:string ->
    ?product:string ->
    ?productSuite:string ->
    ?shortDescription:Sarif.MultiformatMessageString.t ->
    ?fullDescription:Sarif.MultiformatMessageString.t ->
    ?fullName:string ->
    ?version:string ->
    ?semanticVersion:string ->
    ?dottedQuadFileVersion:string ->
    ?releaseDateUtc:string ->
    ?downloadUri:string ->
    ?informationUri:string ->
    ?globalMessageStrings:Sarif.MultiformatMessageStringDictionary.t ->
    ?notifications:Sarif.ReportingDescriptor.t list ->
    ?rules:Sarif.ReportingDescriptor.t list ->
    ?taxa:Sarif.ReportingDescriptor.t list ->
    ?locations:Sarif.ArtifactLocation.t list ->
    ?language:string ->
    ?contents:Sarif.ToolComponent.Contents.t list ->
    ?isComprehensive:bool ->
    ?localizedDataSemanticVersion:string ->
    ?minimumRequiredLocalizedDataSemanticVersion:string ->
    ?associateComponent:Sarif.ToolComponentReference.t ->
    ?translationMetadata:Sarif.TranslationMetadata.t ->
    ?supportedTaxonomies:Sarif.ToolComponentReference.t list ->
    ?properties:Sarif.Properties.t -> unit -> Sarif.ToolComponent.t
  val default : Sarif.ToolComponent.t
end