# Continuous Glucose Monitor (CGM) Settings (`cgmSettings`): Dexcom (`dexcom`)

## Quick Summary


```json
{
  "$ref": "#/components/schemas/cgmsettings.v1",
  "components": {
    "schemas": {
      "code.v1": {
        "title": "Annotation Code",
        "description": "Annotation codes that appear in Tidepool diabetes data records.\nThe annotation codes are primarily intended for machine processing, but they are usually readable enough to make sense.\nThese are by convention structured as series of strings separated by slashes (`/`), in order from more general to more specific.\nFor example:\n\n  * `wrong-device-time` or `time-change`, generic annotations.\n  * `basal/unknown-duration` or `bg/out-of-range`, generic annotations around a particular theme.\n  * `medtronic/basal/flat-rate`, a manufacturer-specific annotation.\n  * `medtronic600/smbg/user-rejected-remote-bg`, a device-specific annotation.",
        "type": "string",
        "minLength": 1,
        "pattern": "^[0-9a-z\\-_]+(/[0-9a-z\\-_]+(/[0-9a-z\\-_]+)?)?$",
        "enum": [
          "animas/basal/flat-rate",
          "animas/basal/marked-suspended-from-alarm",
          "animas/bolus/extended-equal-split",
          "animas/bolus/unknown-duration",
          "animas/out-of-sequence",
          "animas/status/fabricated-from-alarm",
          "basal/auto",
          "basal/intersects-incomplete-suspend",
          "basal/mismatched-series",
          "basal/unknown-duration",
          "bg/out-of-range",
          "carelink/basal/fabricated-from-schedule",
          "carelink/basal/fabricated-from-suppressed",
          "carelink/basal/off-schedule-rate",
          "carelink/bolus/missing-square-component",
          "carelink/wizard/long-search",
          "final-basal/fabricated-from-schedule",
          "insulet/basal/fabricated-from-schedule",
          "insulet/bolus/split-extended",
          "medtronic/basal/fabricated-from-schedule",
          "medtronic/basal/flat-rate",
          "medtronic/basal/one-second-gap",
          "medtronic/basal/time-change",
          "medtronic/status/fabricated-from-device-event",
          "medtronic/wizard/carb-to-exchange-ratio-deconverted",
          "medtronic600/smbg/bg-reading-received",
          "medtronic600/smbg/bg-sent-for-calib",
          "medtronic600/smbg/bg-si-fail-result-recd-frm-gst",
          "medtronic600/smbg/bg-si-pass-result-recd-frm-gst",
          "medtronic600/smbg/entered-as-bg-marker",
          "medtronic600/smbg/entered-in-bg-entry",
          "medtronic600/smbg/entered-in-bolus-wizard",
          "medtronic600/smbg/entered-in-meal-wizard",
          "medtronic600/smbg/entered-in-sensor-calib",
          "medtronic600/smbg/remote-bg-acceptance-screen-timeout",
          "medtronic600/smbg/user-accepted-remote-bg",
          "medtronic600/smbg/user-rejected-remote-bg",
          "medtronic600/smbg/user-rejected-sensor-calib",
          "spring-forward",
          "stats-how-calculated",
          "stats-how-calculated-average-cbg",
          "stats-how-calculated-average-smbg",
          "stats-how-calculated-range-cbg",
          "stats-how-calculated-range-smbg",
          "stats-how-calculated-ratio",
          "stats-insufficient-data",
          "status/incomplete-tuple",
          "tandem/basal/fabricated-from-new-day",
          "tandem/basal/temp-without-rate-change",
          "tandem/pumpSettingsOverride/estimated-duration",
          "tandem/pumpSettingsOverride/fabricated-from-new-day",
          "time-change",
          "uncertain-timestamp",
          "wizard/target-automated",
          "wrong-device-time"
        ],
        "example": "wrong-device-time"
      },
      "bgoutofrange.v1": {
        "title": "Blood Glucose Out of Range",
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "enum": [
              "bg/out-of-range"
            ],
            "example": "bg/out-of-range"
          },
          "value": {
            "type": "string",
            "enum": [
              "low",
              "high"
            ],
            "example": "low"
          },
          "threshold": {
            "type": "number",
            "example": 40
          }
        },
        "required": [
          "code",
          "value",
          "threshold"
        ]
      },
      "annotation.v1": {
        "title": "Annotation",
        "description": "Annotation attached to the diabetes data record to provide additional information. Annotation is at minimum a `code` (string) that describes the annotation. It may also include additional properties that further describe the annotation. The maximum size is 4K bytes.",
        "type": "object",
        "allOf": [
          {
            "type": "object",
            "properties": {
              "code": {
                "$ref": "#/components/schemas/code.v1"
              }
            },
            "required": [
              "code"
            ]
          },
          {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "code": {
                    "$ref": "#/components/schemas/code.v1"
                  }
                },
                "required": [
                  "code"
                ]
              },
              {
                "$ref": "#/components/schemas/bgoutofrange.v1"
              }
            ]
          }
        ]
      },
      "annotationarray.v1": {
        "title": "Annotation Array",
        "description": "An array of annotations.",
        "type": "array",
        "uniqueItems": true,
        "minItems": 0,
        "maxItems": 100,
        "items": {
          "$ref": "#/components/schemas/annotation.v1"
        }
      },
      "datetime.v1": {
        "title": "Date/Time",
        "description": "[RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) / [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) timestamp _with_ timezone information",
        "type": "string",
        "format": "date-time",
        "example": "2017-02-06T02:37:46Z",
        "x-go-type": "string"
      },
      "datasetid.v1": {
        "title": "Data Set ID",
        "type": "string",
        "pattern": "^(upid_[0-9a-f]{12}|upid_[0-9a-f]{32}|[0-9a-f]{32})$",
        "minLength": 17,
        "maxLength": 37,
        "example": "ce8cc5f7595575945f91fc6710db6fef",
        "x-tags": [
          "Data"
        ]
      },
      "association-type.v1": {
        "title": "Association Type",
        "description": "The type of the association. If type is `blob`, `datum`, or `image`, then `id` must also be specified. If type is `url`, then url must also be specified.",
        "type": "string",
        "enum": [
          "blob",
          "datum",
          "image",
          "url"
        ],
        "example": "blob",
        "x-go-type": "string"
      },
      "reason.v1": {
        "title": "Association Reason",
        "description": "The reason for the association.",
        "type": "string",
        "minLength": 1,
        "maxLength": 1000
      },
      "association-id.v1": {
        "title": "Association ID",
        "description": "The ID of the associated Tidepool resource if type is blob, datum, or image.",
        "type": "string"
      },
      "url.v1": {
        "title": "URL",
        "description": "URL",
        "type": "string",
        "format": "uri"
      },
      "blob.v1": {
        "title": "Association (blob)",
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/association-type.v1"
          },
          "reason": {
            "$ref": "#/components/schemas/reason.v1"
          },
          "id": {
            "$ref": "#/components/schemas/association-id.v1"
          },
          "url": {
            "$ref": "#/components/schemas/url.v1"
          }
        },
        "required": [
          "type",
          "id"
        ]
      },
      "datum.v1": {
        "title": "Association (datum)",
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/association-type.v1"
          },
          "reason": {
            "$ref": "#/components/schemas/reason.v1"
          },
          "id": {
            "$ref": "#/components/schemas/association-id.v1"
          },
          "url": {
            "$ref": "#/components/schemas/url.v1"
          }
        },
        "required": [
          "type",
          "id"
        ]
      },
      "image.v1": {
        "title": "Association (image)",
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/association-type.v1"
          },
          "reason": {
            "$ref": "#/components/schemas/reason.v1"
          },
          "id": {
            "$ref": "#/components/schemas/association-id.v1"
          },
          "url": {
            "$ref": "#/components/schemas/url.v1"
          }
        },
        "required": [
          "type",
          "id"
        ]
      },
      "url-association.v1": {
        "title": "Association (url)",
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/association-type.v1"
          },
          "reason": {
            "$ref": "#/components/schemas/reason.v1"
          },
          "id": {
            "$ref": "#/components/schemas/association-id.v1"
          },
          "url": {
            "$ref": "#/components/schemas/url.v1"
          }
        },
        "required": [
          "type",
          "id",
          "url"
        ]
      },
      "association.v1": {
        "title": "Association",
        "description": "Associate this resource with another Tidepool resource ID.",
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/blob.v1"
          },
          {
            "$ref": "#/components/schemas/datum.v1"
          },
          {
            "$ref": "#/components/schemas/image.v1"
          },
          {
            "$ref": "#/components/schemas/url-association.v1"
          }
        ]
      },
      "associationarray.v1": {
        "title": "Association Array",
        "description": "An array of associations for the resource.",
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/association.v1"
        }
      },
      "clockdriftoffset.v1": {
        "title": "Clock Drift Offset",
        "description": "Clock drift offset, expressed as milliseconds.",
        "type": "integer",
        "format": "int64",
        "minimum": -86400000,
        "maximum": 86400000,
        "example": 0,
        "x-tags": [
          "Data"
        ]
      },
      "conversionoffset.v1": {
        "title": "Conversion Offset",
        "description": "Conversion offset, expressed as milliseconds.",
        "type": "integer",
        "format": "int64",
        "example": 0,
        "x-tags": [
          "Data"
        ]
      },
      "tidepooluserid": {
        "type": "string",
        "title": "Tidepool User ID",
        "pattern": "^([0-9a-f]{10}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$",
        "description": "String representation of a Tidepool User ID. Old style IDs are 10-digit strings consisting of only hexadeximcal digits. New style IDs are 36-digit [UUID v4](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random))",
        "readOnly": true,
        "x-go-type": "string"
      },
      "semanticversion.v1": {
        "title": "Semantic Version Number",
        "description": "[Semantic Version Number 2.0.0](http://semver.org/). Regex from their [site](https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string).",
        "type": "string",
        "minLength": 5,
        "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$",
        "example": "2.36.1"
      },
      "reversedomainname.v1": {
        "title": "Reverse Domain Name",
        "description": "Name in the [reverse domain name notation](https://en.wikipedia.org/wiki/Reverse_domain_name_notation).",
        "type": "string",
        "pattern": "^[a-zA-Z0-9](|[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])(\\.[a-zA-Z0-9](|[a-zA-Z0-9-]{0,61}[a-zA-Z0-9]))+$",
        "example": "org.tidepool.uploader"
      },
      "deduplicatordescriptor.v1": {
        "title": "Deduplicator Descriptor",
        "type": "object",
        "properties": {
          "hash": {
            "type": "string",
            "minLength": 1
          },
          "version": {
            "$ref": "#/components/schemas/semanticversion.v1"
          },
          "name": {
            "$ref": "#/components/schemas/reversedomainname.v1"
          }
        },
        "required": [
          "name",
          "version"
        ],
        "x-tags": [
          "Data"
        ]
      },
      "deviceid.v1": {
        "title": "Device ID",
        "description": "Globally unique to device and repeatable with each upload, e.g. device make and model with serial number",
        "type": "string",
        "minLength": 1,
        "example": "MMT-1711:12345678",
        "x-tags": [
          "Data"
        ]
      },
      "datetimenotz.v1": {
        "title": "Date/Time without Timezone",
        "description": "[RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) / [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html) timestamp _without_ timezone information",
        "type": "string",
        "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}$",
        "example": "2017-02-06T02:37:46",
        "x-go-type": "string"
      },
      "jsonpatch.v1": {
        "title": "JSONPatch",
        "oneOf": [
          {
            "properties": {
              "op": {
                "type": "string",
                "description": "The operation to perform.",
                "enum": [
                  "add",
                  "replace",
                  "test"
                ]
              },
              "path": {
                "type": "string",
                "description": "A JSON Pointer path."
              },
              "value": {
                "description": "The value to add, replace or test."
              }
            },
            "required": [
              "op",
              "path",
              "value"
            ]
          },
          {
            "properties": {
              "op": {
                "type": "string",
                "description": "The operation to perform.",
                "enum": [
                  "remove"
                ]
              },
              "path": {
                "type": "string",
                "description": "A JSON Pointer path."
              }
            },
            "required": [
              "op",
              "path"
            ]
          },
          {
            "properties": {
              "op": {
                "type": "string",
                "description": "The operation to perform.",
                "enum": [
                  "move",
                  "copy"
                ]
              },
              "from": {
                "description": "A JSON Pointer path pointing to the location to move/copy from.",
                "type": "string"
              },
              "path": {
                "type": "string",
                "description": "A JSON Pointer path."
              }
            },
            "required": [
              "op",
              "from",
              "path"
            ]
          }
        ],
        "type": "object",
        "description": "Only have this here because Stoplight doesn't seem to like using the JSONSchema directly as a ref from http://json.schemastore.org/json-patch"
      },
      "eventhistory.v1": {
        "title": "Event History [Proposed]",
        "description": "Revision history of the event",
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "time": {
              "$ref": "#/components/schemas/datetime.v1"
            },
            "changes": {
              "$ref": "#/components/schemas/jsonpatch.v1"
            }
          },
          "required": [
            "time",
            "changes"
          ]
        },
        "x-tags": [
          "Data"
        ]
      },
      "origin-id.v1": {
        "title": "Origin ID",
        "description": "Any external identifier uniquely identifying the resource at the origin source.",
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      },
      "name.v1": {
        "title": "Origin Name",
        "description": "A human-readable name for the origin source.",
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      },
      "payload.v1": {
        "title": "Payload",
        "description": "Grab bag field for data that isn't yet part of the data model. The maximum size is 4K bytes.",
        "type": "object",
        "additionalProperties": true
      },
      "origin-type.v1": {
        "title": "Origin Type",
        "description": "The type of the origin source.",
        "type": "string",
        "enum": [
          "application",
          "device",
          "manual",
          "service"
        ],
        "example": "device"
      },
      "version.v1": {
        "title": "Origin Version",
        "description": "The version of the origin source at the time the resources was obtained.",
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      },
      "origin.v1": {
        "title": "Origin",
        "description": "External origin information for the source of the resource.",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/origin-id.v1"
          },
          "name": {
            "$ref": "#/components/schemas/name.v1"
          },
          "payload": {
            "$ref": "#/components/schemas/payload.v1"
          },
          "time": {
            "$ref": "#/components/schemas/datetime.v1"
          },
          "type": {
            "$ref": "#/components/schemas/origin-type.v1"
          },
          "version": {
            "$ref": "#/components/schemas/version.v1"
          }
        },
        "required": [
          "id",
          "name",
          "time",
          "type",
          "version"
        ]
      },
      "longitude.v1": {
        "title": "Longitude",
        "description": "The prime meridian, which passes near the Royal Observatory, Greenwich, England, is defined as 0° longitude by convention. Positive longitudes are east of the prime meridian, and negative ones are west.",
        "type": "object",
        "properties": {
          "units": {
            "type": "string",
            "enum": [
              "degrees"
            ],
            "example": "degrees"
          },
          "value": {
            "type": "number",
            "format": "double",
            "minimum": -180,
            "maximum": 180,
            "example": -122.1625595
          }
        },
        "required": [
          "units",
          "value"
        ]
      },
      "latitude.v1": {
        "title": "Latitude",
        "description": "Latitude is an angle which ranges from -90° at the South pole to 0° at the Equator to 90° at the North pole.",
        "type": "object",
        "properties": {
          "units": {
            "type": "string",
            "enum": [
              "degrees"
            ],
            "example": "degrees"
          },
          "value": {
            "type": "number",
            "format": "double",
            "minimum": -90,
            "maximum": 90,
            "example": 37.4454404
          }
        },
        "required": [
          "units",
          "value"
        ]
      },
      "meters.v1": {
        "title": "Accuracy (meters)",
        "description": "Accuracy of a measurement, expressed as meters.",
        "type": "object",
        "properties": {
          "value": {
            "type": "number",
            "format": "double",
            "minimum": 0,
            "maximum": 1000,
            "example": 42
          },
          "units": {
            "type": "string",
            "enum": [
              "meters"
            ],
            "example": "meters"
          }
        },
        "required": [
          "units"
        ]
      },
      "accuracy-feet.v1": {
        "title": "Accuracy (feet)",
        "description": "Accuracy of a measurement, expressed in `feet`.",
        "type": "object",
        "properties": {
          "value": {
            "type": "number",
            "format": "double",
            "minimum": 0,
            "maximum": 3280,
            "example": 42
          },
          "units": {
            "type": "string",
            "enum": [
              "feet"
            ],
            "example": "feet"
          }
        },
        "required": [
          "units"
        ]
      },
      "accuracy.v1": {
        "title": "Accuracy",
        "description": "Accuracy of a measurement",
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/meters.v1"
          },
          {
            "$ref": "#/components/schemas/accuracy-feet.v1"
          }
        ]
      },
      "floor.v1": {
        "title": "Floor",
        "type": "integer",
        "format": "int32",
        "minimum": -1000,
        "maximum": 1000
      },
      "elevation-meters.v1": {
        "title": "Elevation (meters)",
        "type": "object",
        "properties": {
          "units": {
            "type": "string",
            "enum": [
              "meters"
            ],
            "example": "meters"
          },
          "value": {
            "type": "number",
            "format": "double",
            "minimum": 0,
            "maximum": 10000,
            "example": 42
          }
        },
        "required": [
          "units",
          "value"
        ]
      },
      "elevation-feet.v1": {
        "title": "Elevation (feet)",
        "type": "object",
        "properties": {
          "units": {
            "type": "string",
            "enum": [
              "feet"
            ],
            "example": "feet"
          },
          "value": {
            "type": "number",
            "format": "double",
            "minimum": 0,
            "maximum": 32808,
            "example": 42
          }
        },
        "required": [
          "units",
          "value"
        ]
      },
      "elevation.v1": {
        "title": "Elevation",
        "description": "Elevation, expressed as `meters` or `feet`.",
        "type": "object",
        "oneOf": [
          {
            "$ref": "#/components/schemas/elevation-meters.v1"
          },
          {
            "$ref": "#/components/schemas/elevation-feet.v1"
          }
        ]
      },
      "gps.v1": {
        "title": "GPS",
        "description": "GPS coordinates and related information.",
        "type": "object",
        "properties": {
          "origin": {
            "$ref": "#/components/schemas/origin.v1"
          },
          "longitude": {
            "$ref": "#/components/schemas/longitude.v1"
          },
          "latitude": {
            "$ref": "#/components/schemas/latitude.v1"
          },
          "horizontalAccuracy": {
            "$ref": "#/components/schemas/accuracy.v1"
          },
          "verticalAccuracy": {
            "$ref": "#/components/schemas/accuracy.v1"
          },
          "floor": {
            "$ref": "#/components/schemas/floor.v1"
          },
          "elevation": {
            "$ref": "#/components/schemas/elevation.v1"
          }
        },
        "required": [
          "longitude",
          "latitude"
        ]
      },
      "location.v1": {
        "title": "Location",
        "type": "object",
        "description": "Location information associated with the resource. One or both of `name` and `gps` must be specified.",
        "properties": {
          "name": {
            "type": "string",
            "description": "A name for the location.",
            "minLength": 1,
            "maxLength": 100
          },
          "gps": {
            "$ref": "#/components/schemas/gps.v1"
          }
        }
      },
      "note.v1": {
        "title": "Note",
        "description": "A note associated with the resource.",
        "type": "string",
        "minLength": 1,
        "maxLength": 1000
      },
      "notearray.v1": {
        "title": "Note Array",
        "description": "An array of 1 to 100 notes.",
        "type": "array",
        "minItems": 1,
        "maxItems": 100,
        "items": {
          "$ref": "#/components/schemas/note.v1"
        }
      },
      "tag.v1": {
        "title": "Tag",
        "description": "A tag associated with the resource.",
        "type": "string",
        "minLength": 1,
        "maxLength": 100
      },
      "tagarray.v1": {
        "title": "Tag Array",
        "description": "An array of tags.",
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/tag.v1"
        }
      },
      "timezonename.v1": {
        "title": "Time Zone",
        "description": "A string timezone name from the [IANA timezone database](https://www.iana.org/time-zones)",
        "type": "string",
        "example": "Europe/London",
        "x-tags": [
          "Data"
        ]
      },
      "timezoneoffset.v1": {
        "title": "Time Zone offset",
        "description": "Time zone offset, expressed as positive or negative number of minutes from UTC.",
        "type": "integer",
        "format": "int32",
        "minimum": -10080,
        "maximum": 10080,
        "example": -420,
        "x-tags": [
          "Data"
        ]
      },
      "datatype.v1": {
        "title": "Tidepool Data Type",
        "description": "Data type",
        "type": "string",
        "enum": [
          "alert",
          "basal",
          "bloodKetone",
          "bolus",
          "cbg",
          "cgmSettings",
          "controllerSettings",
          "controllerStatus",
          "deviceEvent",
          "deviceStatus",
          "dosingDecision",
          "food",
          "insulin",
          "physicalActivity",
          "pumpSettings",
          "pumpStatus",
          "reportedState",
          "smbg",
          "upload",
          "water",
          "wizard"
        ],
        "example": "upload",
        "x-tags": [
          "Data"
        ]
      },
      "uploadid.v1": {
        "title": "Upload ID",
        "description": "An upload identifier; this field should be the uploadId of the corresponding upload record",
        "type": "string",
        "pattern": "^([0-9a-f]{32}|upid_[0-9a-f]{12})$",
        "minLength": 17,
        "maxLength": 32,
        "example": "0d92d5c1c22117a18f3620b9e24d3c06",
        "x-tags": [
          "Data"
        ]
      },
      "base.v1": {
        "title": "Base",
        "description": "An abstract base data type for all Tidepool diabetes data objects.",
        "type": "object",
        "properties": {
          "annotations": {
            "$ref": "#/components/schemas/annotationarray.v1"
          },
          "archivedTime": {
            "allOf": [
              {
                "$ref": "#/components/schemas/datetime.v1"
              }
            ],
            "readOnly": true
          },
          "archivedDatasetId": {
            "$ref": "#/components/schemas/datasetid.v1"
          },
          "associations": {
            "$ref": "#/components/schemas/associationarray.v1"
          },
          "clockDriftOffset": {
            "$ref": "#/components/schemas/clockdriftoffset.v1"
          },
          "conversionOffset": {
            "$ref": "#/components/schemas/conversionoffset.v1"
          },
          "createdTime": {
            "$ref": "#/components/schemas/datetime.v1"
          },
          "createdUserId": {
            "$ref": "#/components/schemas/tidepooluserid"
          },
          "deduplicator": {
            "$ref": "#/components/schemas/deduplicatordescriptor.v1"
          },
          "deletedTime": {
            "$ref": "#/components/schemas/datetime.v1"
          },
          "deletedUserId": {
            "$ref": "#/components/schemas/tidepooluserid"
          },
          "deviceId": {
            "$ref": "#/components/schemas/deviceid.v1"
          },
          "deviceTime": {
            "$ref": "#/components/schemas/datetimenotz.v1"
          },
          "guid": {
            "type": "string",
            "description": "A string ID. Added to each event during data processing in the Tidepool Uploader or upon ingestion by the platform data ingestion service.",
            "deprecated": true
          },
          "history": {
            "$ref": "#/components/schemas/eventhistory.v1"
          },
          "id": {
            "$ref": "#/components/schemas/datasetid.v1"
          },
          "location": {
            "$ref": "#/components/schemas/location.v1"
          },
          "modifiedTime": {
            "$ref": "#/components/schemas/datetime.v1"
          },
          "modifiedUserId": {
            "$ref": "#/components/schemas/tidepooluserid"
          },
          "notes": {
            "$ref": "#/components/schemas/notearray.v1"
          },
          "origin": {
            "$ref": "#/components/schemas/origin.v1"
          },
          "payload": {
            "$ref": "#/components/schemas/payload.v1"
          },
          "source": {
            "type": "string",
            "enum": [
              "carelink"
            ]
          },
          "tags": {
            "$ref": "#/components/schemas/tagarray.v1"
          },
          "time": {
            "$ref": "#/components/schemas/datetime.v1"
          },
          "timezone": {
            "$ref": "#/components/schemas/timezonename.v1"
          },
          "timezoneOffset": {
            "$ref": "#/components/schemas/timezoneoffset.v1"
          },
          "type": {
            "$ref": "#/components/schemas/datatype.v1"
          },
          "uploadId": {
            "$ref": "#/components/schemas/uploadid.v1"
          }
        },
        "required": [
          "id",
          "type",
          "time"
        ],
        "x-tags": [
          "Data"
        ]
      },
      "valuemgdl.v1": {
        "title": "Blood Value (mg/dL)",
        "description": "An integer value representing a `mg/dL` value.",
        "type": "integer",
        "format": "int32",
        "minimum": 0,
        "maximum": 1000,
        "example": 105,
        "x-tags": [
          "Data"
        ]
      },
      "valuemmol.v1": {
        "title": "Blood Value (mmol/L)",
        "description": "A floating point value representing a `mmol/L` value.",
        "type": "number",
        "format": "float",
        "minimum": 0,
        "example": 5.5,
        "x-tags": [
          "Data"
        ]
      },
      "value.v1": {
        "title": "Blood Value (in mg/dL or mmol/L units)",
        "oneOf": [
          {
            "$ref": "#/components/schemas/valuemgdl.v1"
          },
          {
            "$ref": "#/components/schemas/valuemmol.v1"
          }
        ],
        "x-tags": [
          "Data"
        ]
      },
      "cgmsettings.v1": {
        "title": "CGM Settings",
        "description": "Continuous Glucose Monitor settings",
        "allOf": [
          {
            "$ref": "#/components/schemas/base.v1"
          },
          {
            "type": "object",
            "properties": {
              "firmwareVersion": {
                "type": "string",
                "maxLength": 100,
                "minLength": 1,
                "example": "1.2"
              },
              "hardwareVersion": {
                "type": "string",
                "maxLength": 100,
                "minLength": 1,
                "example": "2.3r45"
              },
              "highAlerts": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean"
                  },
                  "level": {
                    "$ref": "#/components/schemas/value.v1"
                  },
                  "snooze": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 86400000,
                    "description": "Integer value representing milliseconds"
                  }
                },
                "required": [
                  "enabled",
                  "level",
                  "snooze"
                ]
              },
              "lowAlerts": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean"
                  },
                  "level": {
                    "$ref": "#/components/schemas/value.v1"
                  },
                  "snooze": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 86400000,
                    "description": "Integer value representing milliseconds"
                  }
                },
                "required": [
                  "enabled",
                  "level",
                  "snooze"
                ]
              },
              "manufacturers": {
                "type": "array",
                "maxLength": 10,
                "minLength": 1,
                "example": [
                  "Acme"
                ],
                "items": {
                  "type": "string",
                  "maxLength": 100,
                  "minLength": 1
                }
              },
              "model": {
                "type": "string",
                "maxLength": 100,
                "minLength": 1,
                "example": "Turbo CGM III"
              },
              "name": {
                "type": "string",
                "maxLength": 100,
                "minLength": 1,
                "example": "My CGM"
              },
              "outOfRangeAlerts": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean"
                  },
                  "snooze": {
                    "type": "number",
                    "description": "Integer value representing milliseconds",
                    "format": "double",
                    "minimum": 0,
                    "maximum": 86400000
                  }
                },
                "required": [
                  "enabled",
                  "snooze"
                ]
              },
              "rateOfChangeAlert": {
                "type": "object",
                "properties": {
                  "fallRate": {
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean"
                      },
                      "rate": {
                        "oneOf": [
                          {
                            "description": "Integer value representing a `mg/dL` value.",
                            "format": "double",
                            "minimum": -10,
                            "maximum": 0,
                            "exclusiveMaximum": true,
                            "multipleOf": 1
                          },
                          {
                            "description": "Floating point value representing a `mmol/L` value.",
                            "format": "double",
                            "minimum": -0.55,
                            "maximum": 0,
                            "exclusiveMaximum": true
                          }
                        ],
                        "type": "number"
                      }
                    }
                  },
                  "riseRate": {
                    "type": "object",
                    "properties": {
                      "enabled": {
                        "type": "boolean"
                      },
                      "rate": {
                        "oneOf": [
                          {
                            "description": "Integer value representing a `mg/dL` value.",
                            "format": "double",
                            "exclusiveMinimum": true,
                            "minimum": 0,
                            "maximum": 10,
                            "multipleOf": 1
                          },
                          {
                            "description": "Floating point value representing a `mmol/L` value.",
                            "format": "double",
                            "exclusiveMinimum": true,
                            "minimum": 0,
                            "maximum": 0.55
                          }
                        ],
                        "type": "number"
                      }
                    }
                  }
                },
                "required": [
                  "fallRate",
                  "riseRate"
                ]
              },
              "serialNumber": {
                "type": "string",
                "maxLength": 100,
                "minLength": 1,
                "example": "1234567890"
              },
              "softwareVersion": {
                "type": "string",
                "maxLength": 100,
                "minLength": 1,
                "example": "3.4.5"
              },
              "transmitterId": {
                "type": "string",
                "example": "G8X568"
              },
              "type": {
                "type": "string",
                "enum": [
                  "cgmSettings"
                ]
              },
              "units": {
                "type": "string",
                "enum": [
                  "mg/dL",
                  "mmol/L"
                ]
              }
            }
          }
        ],
        "required": [
          "type"
        ],
        "x-tags": [
          "Data"
        ]
      }
    }
  }
}
```

## Overview

This is the Tidepool data type representing the settings on a continuous glucose monitor (CGM). A CGM consists of a sensor inserted into subcutaneous tissue, attached to a transmitter clipped into the sensor's cradle, then attached to the surface of the  skin with adhesive tape.

Every five minutes, the transmitter sends a blood glucose reading to a receiving device, which can be: an insulin pump with receiving capabilities; a dedicated hardware receiver; or an iPhone with a companion app capable of receiving sensor transmissions via Bluetooth. Retrospective data collection from CGM systems happens via one of these receiving devices.

A CGM system can also be configured to alert the user about glucose values that fall outside a user-selected range.

> Platform does not currently accept deduplicate data, meaning if a user uploads the same data from both a pump and a receiver, Tidepool Uploader will reject one device's data and the deduplicate data will not appear.


Currently, Tidepool only supports CGM settings (not to be confused with [CGM devices](https://www.tidepool.org/users/devices)) from Dexcom. However, we plan to offer support for CGM settings from other manufacturers in the future.

## Type (`type`)

This is the Tidepool data type to represent CGM settings at a given point in time — usually the time of a data upload from the device. Most CGM-receiving devices do not, unfortunately, keep a historical record of all CGM settings whenever a settings change is made. The safest assumption is that the time on each CGM settings object represents a time when the settings were read by the device, *not* the first moment when the settings became effective.

## Firmware Version (`firmwareVersion`)

The firmware version of the CGM, if known.

## Hardware Version (`hardwareVersion`)

The hardware version of the CGM, if known.

## High Alerts (`highAlerts`)

The high alerts object encodes the user’s preferences for receiving alerts about high blood glucose events (hyperglycemia).

Contains the following:

* Enabled
* Level: Threshold for high BG alerts
* Snooze: Allows the user to configure how often the alert should repeat if the person with diabetes' blood glucose remains above the threshold value. A common value is two hours


## Low Alerts (`lowAlerts`)

The low alerts object encodes the user’s preferences for receiving alerts about low blood glucose events (hypoglycemia).

Contains the following:

* Enabled
* Level: Threshold for low BG alerts
* Snooze: Allows the user to configure how often the alert should repeat if the person with diabetes' blood glucose remains below the threshold value. A common value is 15 minutes


## Manufacturers (`manufacturers`)

The manufacturer(s) of the CGM. An array of strings.

## Model (`model`)

The model of the CGM, if known.

## Name (`name`)

The name of the CGM, if known.

## Out Of Range Alerts (`outOfRangeAlerts`)

The out of range alerts object encodes the user's settings for receiving alerts from the receiver if the connection between the transmitter and the receiver has been disrupted. (This is typically due to the transmitter being situated physically out of range of the receiver.)

Contains the following:

* Enabled
* Snooze


> This value is not like the snooze on high alerts and low alerts. More specifically, the time value in an out of range alerts object is not a setting for time between alerts but rather the *amount* of time (counted by the receiver), that the receiver's data connection with the transmitter has been broken. We plan to migrate to the term "threshold" in the future for maximum clarity.


## Rate Of Change Alerts (`rateOfChangeAlerts`)

The rate of change alerts object encodes the user's preferences for receiving alerts when the person with diabetes' blood glucose is changing rapidly — either rising or falling.

Contains the following:

* Enabled
* Rate: The rate of change triggers the alert


> For the fall rate, the rate of change must be specified as a *negative* value. Like all blood glucose-related values in the Tidepool data model, both the fall rate and rise rate may be specified in either mg/dL or mmol/L, but will be translated to mmol/L upon ingestion.


## Serial Number (`serialNumber`)

The serial number of the CGM, if known.

## Software Version (`softwareVersion`)

The software version of the CGM, if known.

## Transmitter ID (`transmitterId`)

The transmitter ID of the CGM, if known.

## Units (`units`)

The unit of the CGM, if known. One of `mg/dL` or `mmol/L`.

## Examples


```json Example (client)
{
    "type": "cgmSettings",
    "firmwareVersion": "1.2",
    "hardwareVersion": "2.3r45",
    "highAlerts": {
        "enabled": true,
        "level": 10.82395858253879,
        "snooze": 4500000
    },
    "lowAlerts": {
        "enabled": true,
        "level": 3.33044879462732,
        "snooze": 1800000
    },
    "manufacturers": [
        "Acme"
    ],
    "model": "Turbo CGM III",
    "name": "My CGM",
    "outOfRangeAlerts": {
        "enabled": false,
        "snooze": 1800000
    },
    "rateOfChangeAlerts": {
        "fallRate": {
            "enabled": true,
            "rate": -0.055507479910455335
        },
        "riseRate": {
            "enabled": false,
            "rate": 0.055507479910455335
        }
    },
    "serialNumber": "1234567890",
    "softwareVersion": "3.4.5",
    "transmitterId": "C8E65",
    "units": "mmol/L",
    "clockDriftOffset": 0,
    "conversionOffset": 0,
    "deviceId": "DevId0987654321",
    "deviceTime": "2018-05-14T18:17:07",
    "guid": "6d15f48c-3734-4ad1-8f39-9b374f1d127f",
    "id": "02ccebd2affc472d9b296d4f1f800dfd",
    "time": "2018-05-14T08:17:07.560Z",
    "timezoneOffset": 600,
    "uploadId": "SampleUploadId"
}
```


```json Example (ingestion)
{
    "type": "cgmSettings",
    "firmwareVersion": "1.2",
    "hardwareVersion": "2.3r45",
    "highAlerts": {
        "enabled": true,
        "level": 185,
        "snooze": 2700000
    },
    "lowAlerts": {
        "enabled": true,
        "level": 85,
        "snooze": 900000
    },
    "manufacturers": [
        "Acme"
    ],
    "model": "Turbo CGM III",
    "name": "My CGM",
    "outOfRangeAlerts": {
        "enabled": false,
        "snooze": 3600000
    },
    "rateOfChangeAlerts": {
        "fallRate": {
            "enabled": true,
            "rate": -2
        },
        "riseRate": {
            "enabled": false,
            "rate": 2
        }
    },
    "serialNumber": "1234567890",
    "softwareVersion": "3.4.5",
    "transmitterId": "BE61A",
    "units": "mg/dL",
    "clockDriftOffset": 0,
    "conversionOffset": 0,
    "deviceId": "DevId0987654321",
    "deviceTime": "2018-05-14T18:17:07",
    "time": "2018-05-14T08:17:07.561Z",
    "timezoneOffset": 600,
    "uploadId": "SampleUploadId"
}
```


```json Example (storage)
{
    "type": "cgmSettings",
    "firmwareVersion": "1.2",
    "hardwareVersion": "2.3r45",
    "highAlerts": {
        "enabled": true,
        "level": 10.268883783434237,
        "snooze": 4500000
    },
    "lowAlerts": {
        "enabled": true,
        "level": 3.8855235937318735,
        "snooze": 1800000
    },
    "manufacturers": [
        "Acme"
    ],
    "model": "Turbo CGM III",
    "name": "My CGM",
    "outOfRangeAlerts": {
        "enabled": false,
        "snooze": 3600000
    },
    "rateOfChangeAlerts": {
        "fallRate": {
            "enabled": false,
            "rate": -0.11101495982091067
        },
        "riseRate": {
            "enabled": false,
            "rate": 0.16652243973136602
        }
    },
    "serialNumber": "1234567890",
    "softwareVersion": "3.4.5",
    "transmitterId": "E3250",
    "units": "mmol/L",
    "_active": true,
    "_groupId": "abcdef",
    "_schemaVersion": 0,
    "_version": 0,
    "clockDriftOffset": 0,
    "conversionOffset": 0,
    "createdTime": "2018-05-14T08:17:12.561Z",
    "deviceId": "DevId0987654321",
    "deviceTime": "2018-05-14T18:17:07",
    "guid": "393c9563-705a-4832-b935-cbf23d759f77",
    "id": "7cb8be46bb9447de8b4f5f90d1bd5486",
    "time": "2018-05-14T08:17:07.561Z",
    "timezoneOffset": 600,
    "uploadId": "SampleUploadId"
}
```

## Keep Reading

* [Annotations](/docs/device-data/annotations)
* [Continuous Blood Glucose (CBG)](/docs/device-data/data-types/cbg)
* [Common Fields](/docs/device-data/common-fields)
* [Out Of Range Values](/docs/device-data/oor-values)
* [Units](/docs/device-data/units)