sig
  module Location :
    sig
      type t = { altitude : float; latitude : float; longitude : float; }
      val altitude :
        (GapiDriveV2Model.File.ImageMediaMetadata.Location.t, float)
        GapiLens.t
      val latitude :
        (GapiDriveV2Model.File.ImageMediaMetadata.Location.t, float)
        GapiLens.t
      val longitude :
        (GapiDriveV2Model.File.ImageMediaMetadata.Location.t, float)
        GapiLens.t
      val empty : GapiDriveV2Model.File.ImageMediaMetadata.Location.t
      val render :
        GapiDriveV2Model.File.ImageMediaMetadata.Location.t ->
        GapiJson.json_data_model list
      val parse :
        GapiDriveV2Model.File.ImageMediaMetadata.Location.t ->
        GapiJson.json_data_model ->
        GapiDriveV2Model.File.ImageMediaMetadata.Location.t
    end
  type t = {
    aperture : float;
    cameraMake : string;
    cameraModel : string;
    colorSpace : string;
    date : string;
    exposureBias : float;
    exposureMode : string;
    exposureTime : float;
    flashUsed : bool;
    focalLength : float;
    height : int;
    isoSpeed : int;
    lens : string;
    location : GapiDriveV2Model.File.ImageMediaMetadata.Location.t;
    maxApertureValue : float;
    meteringMode : string;
    rotation : int;
    sensor : string;
    subjectDistance : int;
    whiteBalance : string;
    width : int;
  }
  val aperture :
    (GapiDriveV2Model.File.ImageMediaMetadata.t, float) GapiLens.t
  val cameraMake :
    (GapiDriveV2Model.File.ImageMediaMetadata.t, string) GapiLens.t
  val cameraModel :
    (GapiDriveV2Model.File.ImageMediaMetadata.t, string) GapiLens.t
  val colorSpace :
    (GapiDriveV2Model.File.ImageMediaMetadata.t, string) GapiLens.t
  val date : (GapiDriveV2Model.File.ImageMediaMetadata.t, string) GapiLens.t
  val exposureBias :
    (GapiDriveV2Model.File.ImageMediaMetadata.t, float) GapiLens.t
  val exposureMode :
    (GapiDriveV2Model.File.ImageMediaMetadata.t, string) GapiLens.t
  val exposureTime :
    (GapiDriveV2Model.File.ImageMediaMetadata.t, float) GapiLens.t
  val flashUsed :
    (GapiDriveV2Model.File.ImageMediaMetadata.t, bool) GapiLens.t
  val focalLength :
    (GapiDriveV2Model.File.ImageMediaMetadata.t, float) GapiLens.t
  val height : (GapiDriveV2Model.File.ImageMediaMetadata.t, int) GapiLens.t
  val isoSpeed : (GapiDriveV2Model.File.ImageMediaMetadata.t, int) GapiLens.t
  val lens : (GapiDriveV2Model.File.ImageMediaMetadata.t, string) GapiLens.t
  val location :
    (GapiDriveV2Model.File.ImageMediaMetadata.t,
     GapiDriveV2Model.File.ImageMediaMetadata.Location.t)
    GapiLens.t
  val maxApertureValue :
    (GapiDriveV2Model.File.ImageMediaMetadata.t, float) GapiLens.t
  val meteringMode :
    (GapiDriveV2Model.File.ImageMediaMetadata.t, string) GapiLens.t
  val rotation : (GapiDriveV2Model.File.ImageMediaMetadata.t, int) GapiLens.t
  val sensor :
    (GapiDriveV2Model.File.ImageMediaMetadata.t, string) GapiLens.t
  val subjectDistance :
    (GapiDriveV2Model.File.ImageMediaMetadata.t, int) GapiLens.t
  val whiteBalance :
    (GapiDriveV2Model.File.ImageMediaMetadata.t, string) GapiLens.t
  val width : (GapiDriveV2Model.File.ImageMediaMetadata.t, int) GapiLens.t
  val empty : GapiDriveV2Model.File.ImageMediaMetadata.t
  val render :
    GapiDriveV2Model.File.ImageMediaMetadata.t ->
    GapiJson.json_data_model list
  val parse :
    GapiDriveV2Model.File.ImageMediaMetadata.t ->
    GapiJson.json_data_model -> GapiDriveV2Model.File.ImageMediaMetadata.t
end