sig
  module Steps :
    sig
      type t = { name : string; number : int; url : string; }
      val name :
        (GapiAnalyticsV3Model.Goal.UrlDestinationDetails.Steps.t, string)
        GapiLens.t
      val number :
        (GapiAnalyticsV3Model.Goal.UrlDestinationDetails.Steps.t, int)
        GapiLens.t
      val url :
        (GapiAnalyticsV3Model.Goal.UrlDestinationDetails.Steps.t, string)
        GapiLens.t
      val empty : GapiAnalyticsV3Model.Goal.UrlDestinationDetails.Steps.t
      val render :
        GapiAnalyticsV3Model.Goal.UrlDestinationDetails.Steps.t ->
        GapiJson.json_data_model list
      val parse :
        GapiAnalyticsV3Model.Goal.UrlDestinationDetails.Steps.t ->
        GapiJson.json_data_model ->
        GapiAnalyticsV3Model.Goal.UrlDestinationDetails.Steps.t
    end
  type t = {
    caseSensitive : bool;
    firstStepRequired : bool;
    matchType : string;
    steps : GapiAnalyticsV3Model.Goal.UrlDestinationDetails.Steps.t list;
    url : string;
  }
  val caseSensitive :
    (GapiAnalyticsV3Model.Goal.UrlDestinationDetails.t, bool) GapiLens.t
  val firstStepRequired :
    (GapiAnalyticsV3Model.Goal.UrlDestinationDetails.t, bool) GapiLens.t
  val matchType :
    (GapiAnalyticsV3Model.Goal.UrlDestinationDetails.t, string) GapiLens.t
  val steps :
    (GapiAnalyticsV3Model.Goal.UrlDestinationDetails.t,
     GapiAnalyticsV3Model.Goal.UrlDestinationDetails.Steps.t list)
    GapiLens.t
  val url :
    (GapiAnalyticsV3Model.Goal.UrlDestinationDetails.t, string) GapiLens.t
  val empty : GapiAnalyticsV3Model.Goal.UrlDestinationDetails.t
  val render :
    GapiAnalyticsV3Model.Goal.UrlDestinationDetails.t ->
    GapiJson.json_data_model list
  val parse :
    GapiAnalyticsV3Model.Goal.UrlDestinationDetails.t ->
    GapiJson.json_data_model ->
    GapiAnalyticsV3Model.Goal.UrlDestinationDetails.t
end