{
  "components": {
    "schemas": {
      "AggregateFunction": {
        "enum": [
          "sum",
          "avg",
          "min",
          "max"
        ],
        "title": "AggregateFunction",
        "type": "string"
      },
      "AggregateResolution": {
        "enum": [
          "15m",
          "60m",
          "day"
        ],
        "title": "AggregateResolution",
        "type": "string"
      },
      "AnnotationRoot": {
        "discriminator": {
          "mapping": {
            "boolean": "#/components/schemas/BooleanAnnotation",
            "duration": "#/components/schemas/DurationAnnotation",
            "moment": "#/components/schemas/MomentAnnotation",
            "numeric": "#/components/schemas/NumericAnnotation",
            "people": "#/components/schemas/PeopleAnnotation",
            "scale": "#/components/schemas/ScaleAnnotation"
          },
          "propertyName": "annotation_type"
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/BooleanAnnotation"
          },
          {
            "$ref": "#/components/schemas/DurationAnnotation"
          },
          {
            "$ref": "#/components/schemas/MomentAnnotation"
          },
          {
            "$ref": "#/components/schemas/NumericAnnotation"
          },
          {
            "$ref": "#/components/schemas/PeopleAnnotation"
          },
          {
            "$ref": "#/components/schemas/ScaleAnnotation"
          }
        ],
        "title": "AnnotationRoot"
      },
      "AnnotationRow": {
        "description": "Represents a db record of a user's annotation",
        "properties": {
          "annotation_type": {
            "$ref": "#/components/schemas/AnnotationType",
            "description": "Annotation type"
          },
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "deleted_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Deleted At"
          },
          "description": {
            "description": "Description",
            "title": "Description",
            "type": "string"
          },
          "fulcra_source_id": {
            "readOnly": true,
            "title": "Fulcra Source Id",
            "type": "string"
          },
          "fulcra_userid": {
            "format": "uuid",
            "title": "Fulcra Userid",
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "title": "Id",
            "type": "string"
          },
          "measurement_spec": {
            "anyOf": [
              {
                "discriminator": {
                  "mapping": {
                    "boolean": "#/components/schemas/BooleanMeasurement",
                    "count": "#/components/schemas/CountMeasurement",
                    "custom": "#/components/schemas/CustomMeasurement",
                    "distance": "#/components/schemas/DistanceMeasurement",
                    "duration": "#/components/schemas/DurationMeasurement",
                    "mass": "#/components/schemas/MassMeasurement",
                    "percent": "#/components/schemas/PercentMeasurement",
                    "period": "#/components/schemas/PeriodMeasurement",
                    "scale": "#/components/schemas/ScaleMeasurement",
                    "temperature": "#/components/schemas/TemperatureMeasurement",
                    "volume": "#/components/schemas/VolumeMeasurement"
                  },
                  "propertyName": "measurement_type"
                },
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/BooleanMeasurement"
                  },
                  {
                    "$ref": "#/components/schemas/CountMeasurement"
                  },
                  {
                    "$ref": "#/components/schemas/CustomMeasurement"
                  },
                  {
                    "$ref": "#/components/schemas/DistanceMeasurement"
                  },
                  {
                    "$ref": "#/components/schemas/DurationMeasurement"
                  },
                  {
                    "$ref": "#/components/schemas/MassMeasurement"
                  },
                  {
                    "$ref": "#/components/schemas/PercentMeasurement"
                  },
                  {
                    "$ref": "#/components/schemas/PeriodMeasurement"
                  },
                  {
                    "$ref": "#/components/schemas/ScaleMeasurement"
                  },
                  {
                    "$ref": "#/components/schemas/TemperatureMeasurement"
                  },
                  {
                    "$ref": "#/components/schemas/VolumeMeasurement"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "Measurement spec",
            "title": "Measurement Spec"
          },
          "name": {
            "description": "Name",
            "title": "Name",
            "type": "string"
          },
          "spec": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ScaleAnnotationSpecContainer-Output"
              },
              {
                "$ref": "#/components/schemas/AnnotationSpecContainer"
              },
              {
                "type": "null"
              }
            ],
            "description": "Type-specific spec",
            "title": "Spec"
          },
          "tags": {
            "description": "Default tags",
            "items": {
              "format": "uuid",
              "type": "string"
            },
            "title": "Tags",
            "type": "array"
          },
          "updated_at": {
            "format": "date-time",
            "title": "Updated At",
            "type": "string"
          }
        },
        "required": [
          "name",
          "description",
          "annotation_type",
          "tags",
          "fulcra_userid",
          "id",
          "created_at",
          "updated_at",
          "fulcra_source_id"
        ],
        "title": "AnnotationRow",
        "type": "object"
      },
      "AnnotationSpecContainer": {
        "properties": {
          "default_note": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Default note text, if any",
            "title": "Default Note"
          }
        },
        "title": "AnnotationSpecContainer",
        "type": "object"
      },
      "AnnotationType": {
        "description": "Represents the base type of an annotation",
        "enum": [
          "duration",
          "moment",
          "numeric",
          "people",
          "scale",
          "boolean"
        ],
        "title": "AnnotationType",
        "type": "string"
      },
      "BooleanAnnotation": {
        "description": "Represents an annotation with a yes or no measurement",
        "properties": {
          "annotation_type": {
            "const": "boolean",
            "default": "boolean",
            "title": "Annotation Type",
            "type": "string"
          },
          "description": {
            "description": "Description",
            "title": "Description",
            "type": "string"
          },
          "measurement_spec": {
            "$ref": "#/components/schemas/BooleanMeasurement"
          },
          "name": {
            "description": "Name",
            "title": "Name",
            "type": "string"
          },
          "spec": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AnnotationSpecContainer"
              },
              {
                "type": "null"
              }
            ]
          },
          "tags": {
            "description": "Default tags",
            "items": {
              "format": "uuid",
              "type": "string"
            },
            "title": "Tags",
            "type": "array"
          }
        },
        "required": [
          "name",
          "description",
          "measurement_spec",
          "tags"
        ],
        "title": "BooleanAnnotation",
        "type": "object"
      },
      "BooleanMeasurement": {
        "description": "Represents a yes or no measurement configuration",
        "properties": {
          "boolean": {
            "$ref": "#/components/schemas/BooleanMeasurementSpec"
          },
          "measurement_type": {
            "const": "boolean",
            "default": "boolean",
            "title": "Measurement Type",
            "type": "string"
          },
          "metric_kind": {
            "$ref": "#/components/schemas/MetricKind",
            "default": "discrete",
            "description": "How the measurement should be aggregated"
          },
          "unit": {
            "title": "Unit",
            "type": "null"
          },
          "value_type": {
            "const": "boolean",
            "default": "boolean",
            "title": "Value Type",
            "type": "string"
          }
        },
        "required": [
          "boolean"
        ],
        "title": "BooleanMeasurement",
        "type": "object"
      },
      "BooleanMeasurementSpec": {
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "Default value",
            "title": "Value"
          }
        },
        "title": "BooleanMeasurementSpec",
        "type": "object"
      },
      "BoundsResponse": {
        "properties": {
          "end_date": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "the ending date/time of this data set",
            "title": "End Date"
          },
          "start_date": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "the starting date/time of this data set",
            "title": "Start Date"
          }
        },
        "required": [
          "start_date",
          "end_date"
        ],
        "title": "BoundsResponse",
        "type": "object"
      },
      "ColorScaleMapping-Input": {
        "description": "Represents a scale mapping to colorrs",
        "properties": {
          "color": {
            "$ref": "#/components/schemas/ColorScaleMappingSpec-Input"
          },
          "mapping_type": {
            "const": "color",
            "default": "color",
            "title": "Mapping Type",
            "type": "string"
          }
        },
        "required": [
          "color"
        ],
        "title": "ColorScaleMapping",
        "type": "object"
      },
      "ColorScaleMapping-Output": {
        "description": "Represents a scale mapping to colorrs",
        "properties": {
          "color": {
            "$ref": "#/components/schemas/ColorScaleMappingSpec-Output"
          },
          "mapping_type": {
            "const": "color",
            "default": "color",
            "title": "Mapping Type",
            "type": "string"
          }
        },
        "required": [
          "color"
        ],
        "title": "ColorScaleMapping",
        "type": "object"
      },
      "ColorScaleMappingSpec-Input": {
        "properties": {
          "mapping": {
            "additionalProperties": {
              "format": "color",
              "type": "string"
            },
            "description": "Mapping of scale values to colors, normalized to hex format",
            "title": "Mapping",
            "type": "object"
          }
        },
        "required": [
          "mapping"
        ],
        "title": "ColorScaleMappingSpec",
        "type": "object"
      },
      "ColorScaleMappingSpec-Output": {
        "properties": {
          "mapping": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Mapping of scale values to colors, normalized to hex format",
            "title": "Mapping",
            "type": "object"
          }
        },
        "required": [
          "mapping"
        ],
        "title": "ColorScaleMappingSpec",
        "type": "object"
      },
      "CountMeasurement": {
        "description": "Represents a count measurement configuration",
        "properties": {
          "count": {
            "$ref": "#/components/schemas/CountMeasurementSpec"
          },
          "measurement_type": {
            "const": "count",
            "default": "count",
            "title": "Measurement Type",
            "type": "string"
          },
          "metric_kind": {
            "$ref": "#/components/schemas/MetricKind",
            "default": "discrete",
            "description": "How the measurement should be aggregated"
          },
          "unit": {
            "title": "Unit",
            "type": "null"
          },
          "value_type": {
            "const": "real",
            "default": "real",
            "title": "Value Type",
            "type": "string"
          }
        },
        "required": [
          "count"
        ],
        "title": "CountMeasurement",
        "type": "object"
      },
      "CountMeasurementSpec": {
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Default value",
            "title": "Value"
          }
        },
        "title": "CountMeasurementSpec",
        "type": "object"
      },
      "CreateFileUploadRequestBody": {
        "additionalProperties": false,
        "properties": {
          "content_length": {
            "format": "int64",
            "type": "integer"
          },
          "content_type": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "path": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "path",
          "content_type",
          "content_length"
        ],
        "type": "object"
      },
      "CreateFileUploadResponseBody": {
        "additionalProperties": false,
        "properties": {
          "file": {
            "$ref": "#/components/schemas/FulcraFileUploadInput"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "file",
          "url"
        ],
        "type": "object"
      },
      "CreateFulcraCustomInputRequest": {
        "additionalProperties": false,
        "properties": {
          "default_event_tags": {
            "items": {
              "type": "string"
            },
            "maxItems": 10,
            "type": [
              "array",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "fulcra_data_type": {
            "type": [
              "string",
              "null"
            ]
          },
          "fulcra_source": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "CreateFulcraReflectionRequest": {
        "additionalProperties": false,
        "properties": {
          "annotations": {
            "default": [],
            "items": {
              "type": "string"
            },
            "maxItems": 50,
            "type": [
              "array",
              "null"
            ]
          },
          "data_types": {
            "default": [],
            "items": {
              "$ref": "#/components/schemas/FulcraReflectionDataType"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "description": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "parent_template_id": {
            "type": "string"
          },
          "schedule": {
            "$ref": "#/components/schemas/FulcraReflectionSchedule"
          }
        },
        "required": [
          "name",
          "schedule"
        ],
        "type": "object"
      },
      "CreateFulcraTagRequest": {
        "properties": {
          "name": {
            "maxLength": 30,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "title": "CreateFulcraTagRequest",
        "type": "object"
      },
      "CustomMeasurement": {
        "description": "Represents a custom non-convertable measurement configuration",
        "properties": {
          "custom": {
            "$ref": "#/components/schemas/CustomMeasurementSpec"
          },
          "measurement_type": {
            "const": "custom",
            "default": "custom",
            "title": "Measurement Type",
            "type": "string"
          },
          "metric_kind": {
            "$ref": "#/components/schemas/MetricKind",
            "default": "discrete",
            "description": "How the measurement should be aggregated"
          },
          "unit": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Unit"
          },
          "value_type": {
            "const": "real",
            "default": "real",
            "title": "Value Type",
            "type": "string"
          }
        },
        "required": [
          "custom"
        ],
        "title": "CustomMeasurement",
        "type": "object"
      },
      "CustomMeasurementSpec": {
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Default value",
            "title": "Value"
          }
        },
        "title": "CustomMeasurementSpec",
        "type": "object"
      },
      "DataMetric": {
        "description": "Description of a metric that can be requested from this service.",
        "properties": {
          "description": {
            "description": "A human-readable description of the metric.",
            "title": "Description",
            "type": "string"
          },
          "is_time_series": {
            "default": false,
            "description": "This is true when the metric is a time-series metric.",
            "title": "Is Time Series",
            "type": "boolean"
          },
          "metric_kind": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The kind of metric.",
            "title": "Metric Kind"
          },
          "name": {
            "description": "The name of the metric.",
            "title": "Name",
            "type": "string"
          },
          "unit": {
            "description": "The measurement unit of the value column.",
            "title": "Unit",
            "type": "string"
          },
          "value_column": {
            "description": "The name of the value column in the resulting dataframe.",
            "title": "Value Column",
            "type": "string"
          }
        },
        "required": [
          "name",
          "description",
          "unit",
          "value_column"
        ],
        "title": "DataMetric",
        "type": "object"
      },
      "DataRecordMetadataV1": {
        "properties": {
          "content_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Content Type"
          },
          "data_type": {
            "title": "Data Type",
            "type": "string"
          },
          "id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Id"
          },
          "recorded_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/DateTimeRange"
              }
            ],
            "deprecated": true,
            "title": "Recorded At"
          },
          "source": {
            "default": [],
            "items": {
              "type": "string"
            },
            "title": "Source",
            "type": "array"
          },
          "tags": {
            "default": [],
            "items": {
              "format": "uuid",
              "type": "string"
            },
            "title": "Tags",
            "type": "array",
            "uniqueItems": true
          }
        },
        "required": [
          "data_type"
        ],
        "title": "DataRecordMetadataV1",
        "type": "object"
      },
      "DataRecordV1": {
        "properties": {
          "data": {
            "title": "Data",
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/DataRecordMetadataV1"
          },
          "specversion": {
            "default": 1,
            "title": "Specversion",
            "type": "integer"
          }
        },
        "required": [
          "data",
          "metadata"
        ],
        "title": "DataRecordV1",
        "type": "object"
      },
      "DateTimeRange": {
        "properties": {
          "end_time": {
            "format": "date-time",
            "title": "End Time",
            "type": "string"
          },
          "start_time": {
            "format": "date-time",
            "title": "Start Time",
            "type": "string"
          }
        },
        "required": [
          "start_time",
          "end_time"
        ],
        "title": "DateTimeRange",
        "type": "object"
      },
      "DistanceMeasurement": {
        "description": "Represents a distance or length measurement configuration",
        "properties": {
          "distance": {
            "$ref": "#/components/schemas/DistanceMeasurementSpec"
          },
          "measurement_type": {
            "const": "distance",
            "default": "distance",
            "title": "Measurement Type",
            "type": "string"
          },
          "metric_kind": {
            "$ref": "#/components/schemas/MetricKind",
            "default": "discrete",
            "description": "How the measurement should be aggregated"
          },
          "unit": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/DistanceUnit"
              },
              {
                "type": "null"
              }
            ]
          },
          "value_type": {
            "const": "real",
            "default": "real",
            "title": "Value Type",
            "type": "string"
          }
        },
        "required": [
          "distance"
        ],
        "title": "DistanceMeasurement",
        "type": "object"
      },
      "DistanceMeasurementSpec": {
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Default value",
            "title": "Value"
          }
        },
        "title": "DistanceMeasurementSpec",
        "type": "object"
      },
      "DistanceUnit": {
        "enum": [
          "inch",
          "foot",
          "yard",
          "mile",
          "millimeter",
          "centimeter",
          "meter",
          "kilometer"
        ],
        "title": "DistanceUnit",
        "type": "string"
      },
      "DurationAnnotation": {
        "description": "Represents an annotation with a time interval measurement",
        "properties": {
          "annotation_type": {
            "const": "duration",
            "default": "duration",
            "title": "Annotation Type",
            "type": "string"
          },
          "description": {
            "description": "Description",
            "title": "Description",
            "type": "string"
          },
          "measurement_spec": {
            "$ref": "#/components/schemas/DurationMeasurement"
          },
          "name": {
            "description": "Name",
            "title": "Name",
            "type": "string"
          },
          "spec": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AnnotationSpecContainer"
              },
              {
                "type": "null"
              }
            ]
          },
          "tags": {
            "description": "Default tags",
            "items": {
              "format": "uuid",
              "type": "string"
            },
            "title": "Tags",
            "type": "array"
          }
        },
        "required": [
          "name",
          "description",
          "measurement_spec",
          "tags"
        ],
        "title": "DurationAnnotation",
        "type": "object"
      },
      "DurationMeasurement": {
        "description": "Represents a time duration measurement configuration",
        "properties": {
          "measurement_type": {
            "const": "duration",
            "default": "duration",
            "title": "Measurement Type",
            "type": "string"
          },
          "metric_kind": {
            "$ref": "#/components/schemas/MetricKind",
            "default": "discrete",
            "description": "How the measurement should be aggregated"
          },
          "unit": {
            "title": "Unit",
            "type": "null"
          },
          "value_type": {
            "const": "duration",
            "default": "duration",
            "title": "Value Type",
            "type": "string"
          }
        },
        "title": "DurationMeasurement",
        "type": "object"
      },
      "EmojiScaleMapping-Input": {
        "description": "Represents a scale mapping to colorrs",
        "properties": {
          "color": {
            "$ref": "#/components/schemas/ColorScaleMappingSpec-Input"
          },
          "mapping_type": {
            "const": "emoji",
            "default": "emoji",
            "title": "Mapping Type",
            "type": "string"
          },
          "string": {
            "$ref": "#/components/schemas/StringScaleMappingSpec"
          }
        },
        "required": [
          "color",
          "string"
        ],
        "title": "EmojiScaleMapping",
        "type": "object"
      },
      "EmojiScaleMapping-Output": {
        "description": "Represents a scale mapping to colorrs",
        "properties": {
          "color": {
            "$ref": "#/components/schemas/ColorScaleMappingSpec-Output"
          },
          "mapping_type": {
            "const": "emoji",
            "default": "emoji",
            "title": "Mapping Type",
            "type": "string"
          },
          "string": {
            "$ref": "#/components/schemas/StringScaleMappingSpec"
          }
        },
        "required": [
          "color",
          "string"
        ],
        "title": "EmojiScaleMapping",
        "type": "object"
      },
      "ErrorDetail": {
        "additionalProperties": false,
        "properties": {
          "location": {
            "description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
            "type": "string"
          },
          "message": {
            "description": "Error message text",
            "type": "string"
          },
          "value": {
            "description": "The value at the given location"
          }
        },
        "type": "object"
      },
      "ErrorModel": {
        "additionalProperties": false,
        "properties": {
          "detail": {
            "description": "A human-readable explanation specific to this occurrence of the problem.",
            "examples": [
              "Property foo is required but is missing."
            ],
            "type": "string"
          },
          "errors": {
            "description": "Optional list of individual error details",
            "items": {
              "$ref": "#/components/schemas/ErrorDetail"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "instance": {
            "description": "A URI reference that identifies the specific occurrence of the problem.",
            "examples": [
              "https://example.com/error-log/abc123"
            ],
            "format": "uri",
            "type": "string"
          },
          "status": {
            "description": "HTTP status code",
            "examples": [
              400
            ],
            "format": "int64",
            "type": "integer"
          },
          "title": {
            "description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
            "examples": [
              "Bad Request"
            ],
            "type": "string"
          },
          "type": {
            "default": "about:blank",
            "description": "A URI reference to human-readable documentation for the error.",
            "examples": [
              "https://example.com/errors/example"
            ],
            "format": "uri",
            "type": "string"
          }
        },
        "type": "object"
      },
      "FulcraAPISessionRow": {
        "description": "Represents a db record of a fulcra session",
        "properties": {
          "created_at": {
            "format": "date-time",
            "title": "Created At",
            "type": "string"
          },
          "deleted_at": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Deleted At"
          },
          "fulcra_userid": {
            "format": "uuid",
            "title": "Fulcra Userid",
            "type": "string"
          },
          "id": {
            "format": "uuid",
            "title": "Id",
            "type": "string"
          },
          "name": {
            "title": "Name",
            "type": "string"
          },
          "policy_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Policy Id"
          }
        },
        "required": [
          "id",
          "fulcra_userid",
          "name",
          "created_at",
          "deleted_at"
        ],
        "title": "FulcraAPISessionRow",
        "type": "object"
      },
      "FulcraAPIVersion": {
        "description": "fulcra API versions",
        "enum": [
          "v0",
          "v1alpha1",
          "v1"
        ],
        "title": "FulcraAPIVersion",
        "type": "string"
      },
      "FulcraAppleWorkout": {
        "description": "Represents an Apple Health workout event.",
        "properties": {
          "all_statistics": {
            "additionalProperties": true,
            "description": "A collection of descriptive statistics for the workout.",
            "title": "All Statistics",
            "type": "object"
          },
          "apple_workout_id": {
            "description": "Workout ID",
            "format": "uuid",
            "title": "Apple Workout Id",
            "type": "string"
          },
          "device": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "Details of the device that recorded the workout,",
            "title": "Device"
          },
          "duration": {
            "description": "Length of the workout (seconds)",
            "title": "Duration",
            "type": "number"
          },
          "end_date": {
            "description": "the date/time when this workout ends",
            "format": "date-time",
            "title": "End Date",
            "type": "string"
          },
          "extras": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "Extra values that are not (yet) accounted for in the schema.",
            "title": "Extras"
          },
          "has_undetermined_duration": {
            "description": "indicates whether or not this workout has an unknown duration",
            "title": "Has Undetermined Duration",
            "type": "boolean"
          },
          "source_revision": {
            "additionalProperties": true,
            "description": "\n        Details of the source application or device that recorded the workout.\n        ",
            "title": "Source Revision",
            "type": "object"
          },
          "start_date": {
            "description": "the date/time when this workout starts",
            "format": "date-time",
            "title": "Start Date",
            "type": "string"
          },
          "workout_activities": {
            "description": "An ordered list of time segments that describe the workout.",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Workout Activities",
            "type": "array"
          },
          "workout_activity_type": {
            "default": "The type of workout.",
            "title": "Workout Activity Type",
            "type": "string"
          },
          "workout_events": {
            "description": "An ordered list of events that occurred during the workout.",
            "items": {
              "additionalProperties": true,
              "type": "object"
            },
            "title": "Workout Events",
            "type": "array"
          }
        },
        "required": [
          "start_date",
          "end_date",
          "has_undetermined_duration",
          "apple_workout_id",
          "duration",
          "extras",
          "all_statistics",
          "workout_activities",
          "workout_events",
          "source_revision",
          "device"
        ],
        "title": "FulcraAppleWorkout",
        "type": "object"
      },
      "FulcraCalendar": {
        "description": "Represents a User's Calendar",
        "properties": {
          "calendar_color": {
            "description": "Calendar Color",
            "title": "Calendar Color",
            "type": "string"
          },
          "calendar_id": {
            "description": "Calendar ID",
            "format": "uuid",
            "title": "Calendar Id",
            "type": "string"
          },
          "calendar_identifier": {
            "description": "Calendar Device Identifier",
            "title": "Calendar Identifier",
            "type": "string"
          },
          "calendar_name": {
            "description": "Calendar Name",
            "title": "Calendar Name",
            "type": "string"
          },
          "calendar_source_id": {
            "description": "Calendar Source ID",
            "title": "Calendar Source Id",
            "type": "string"
          },
          "calendar_source_name": {
            "description": "Calendar Source Name",
            "title": "Calendar Source Name",
            "type": "string"
          },
          "calendar_type": {
            "description": "Calendar Type",
            "title": "Calendar Type",
            "type": "string"
          },
          "color": {
            "default": "Calendar Color",
            "title": "Color",
            "type": "string"
          },
          "fulcra_source": {
            "description": "Fulcra Datasource Name",
            "title": "Fulcra Source",
            "type": "string"
          },
          "inserted_at": {
            "description": "Date of First Upload",
            "format": "date-time",
            "title": "Inserted At",
            "type": "string"
          },
          "is_immutable": {
            "description": "Calendar Is-Immutable Flag",
            "title": "Is Immutable",
            "type": "boolean"
          },
          "is_subscribed": {
            "description": "Is Calendar Subscribed To",
            "title": "Is Subscribed",
            "type": "boolean"
          },
          "source_type": {
            "description": "Calendar Source Type",
            "title": "Source Type",
            "type": "string"
          }
        },
        "required": [
          "calendar_id",
          "calendar_name",
          "calendar_color",
          "calendar_source_id",
          "calendar_source_name",
          "fulcra_source",
          "is_immutable",
          "is_subscribed",
          "calendar_type",
          "calendar_identifier",
          "source_type",
          "inserted_at"
        ],
        "title": "FulcraCalendar",
        "type": "object"
      },
      "FulcraCalendarEvent": {
        "description": "Represents an event on a user's calendar.\n\nThe fields in this schema are not intended to be exhaustive, as the\nsources that feed this response may include a wide variety of calendar\nschemas.  The `extras` property should be used to store any other fields.",
        "properties": {
          "allow_new_time_proposals": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "True if attendees may propose a new time when responding",
            "title": "Allow New Time Proposals"
          },
          "availability": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "A string that indicates the event's availability status the calendar.",
            "title": "Availability"
          },
          "calendar_event_id": {
            "description": "Calendar Event ID",
            "format": "uuid",
            "title": "Calendar Event Id",
            "type": "string"
          },
          "calendar_id": {
            "description": "Calendar ID",
            "format": "uuid",
            "title": "Calendar Id",
            "type": "string"
          },
          "calendar_item_external_identifier": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The external identifier for this calendar event, as provided by an external calendar server.",
            "title": "Calendar Item External Identifier"
          },
          "calendar_item_identifier": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The identifier for this calendar item, as sent by the device.  May be different from event_identifier.",
            "title": "Calendar Item Identifier"
          },
          "creation_date": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The date when this event was created.",
            "title": "Creation Date"
          },
          "end_date": {
            "description": "the date/time when this event ends.",
            "format": "date-time",
            "title": "End Date",
            "type": "string"
          },
          "event_identifier": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The identifier for this event, as sent by the device.  May be different from calendar_item_identifier.",
            "title": "Event Identifier"
          },
          "extras": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "Extra values that are not (yet) accounted for in the schema.",
            "title": "Extras"
          },
          "geolocation": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/GeofenceLocation"
              },
              {
                "type": "null"
              }
            ],
            "description": "The structured location (coordinates) of the event."
          },
          "has_alarms": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "True if the device indicates that the event has alarms.",
            "title": "Has Alarms"
          },
          "has_attendees": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "True if the device indicates that the event has attendees.",
            "title": "Has Attendees"
          },
          "has_notes": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "True if the device indicates that the event has notes.",
            "title": "Has Notes"
          },
          "has_recurrence_rules": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "True if the device indicates that the event recurs.",
            "title": "Has Recurrence Rules"
          },
          "is_all_day": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "True if the event is all day.",
            "title": "Is All Day"
          },
          "is_detached": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "True if the event is 'detached' from a recurring event.",
            "title": "Is Detached"
          },
          "last_modified_date": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The date/time when this event was last modified.",
            "title": "Last Modified Date"
          },
          "location": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The string description of the location of the event.",
            "title": "Location"
          },
          "notes": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The notes associated with the event.",
            "title": "Notes"
          },
          "occurrence_date": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The date of this specific instance of a recurring event.",
            "title": "Occurrence Date"
          },
          "organizer": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/FulcraCalendarEventParticipant"
              },
              {
                "type": "null"
              }
            ],
            "description": "The organizer of the event.",
            "title": "Organizer"
          },
          "participants": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/FulcraCalendarEventParticipant"
                },
                "type": "array"
              },
              {
                "items": {
                  "format": "uuid",
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "description": "The participants of the event.",
            "title": "Participants"
          },
          "recurrence_rules": {
            "anyOf": [
              {
                "items": {
                  "$ref": "#/components/schemas/FulcraCalendarRecurrenceRule"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "description": "The rules that describe the cadence of a recurring event.",
            "title": "Recurrence Rules"
          },
          "start_date": {
            "description": "the date/time when this event starts.",
            "format": "date-time",
            "title": "Start Date",
            "type": "string"
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The device-platform-specific text that describes the status (e.g. 'cancelled', 'confirmed') of an event",
            "title": "Status"
          },
          "time_zone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The text describing the time zone of the event.",
            "title": "Time Zone"
          },
          "title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The title of the event.",
            "title": "Title"
          },
          "url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The URL of the calendar item associated with this event.",
            "title": "Url"
          }
        },
        "required": [
          "calendar_event_id",
          "calendar_id",
          "start_date",
          "end_date",
          "allow_new_time_proposals",
          "availability",
          "calendar_item_external_identifier",
          "calendar_item_identifier",
          "event_identifier",
          "creation_date",
          "has_alarms",
          "has_attendees",
          "has_notes",
          "has_recurrence_rules",
          "is_all_day",
          "is_detached",
          "last_modified_date",
          "location",
          "notes",
          "occurrence_date",
          "organizer",
          "recurrence_rules",
          "status",
          "geolocation",
          "time_zone",
          "title",
          "url",
          "extras",
          "participants"
        ],
        "title": "FulcraCalendarEvent",
        "type": "object"
      },
      "FulcraCalendarEventParticipant": {
        "description": "Represents an entity -- person, room, building, group, chatbot, etc. --\nthat is invited to a calendar event.",
        "properties": {
          "contact_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "If this participant is known as a contact for this Fulcra user, this is the ID.",
            "title": "Contact Id"
          },
          "is_current_user": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "True if the participant is the user of the device that sent the information about the event.",
            "title": "Is Current User"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The name of the participant.",
            "title": "Name"
          },
          "participant_role": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Describes the participant's role in the event.",
            "title": "Participant Role"
          },
          "participant_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Describes the participation status (e.g. 'attending') of the participant.",
            "title": "Participant Status"
          },
          "participant_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Describes the type of participant (e.g. 'person', 'room').",
            "title": "Participant Type"
          },
          "url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "A URL identifying this participant.",
            "title": "Url"
          }
        },
        "required": [
          "is_current_user",
          "participant_role",
          "participant_type",
          "participant_status",
          "url",
          "contact_id",
          "name"
        ],
        "title": "FulcraCalendarEventParticipant",
        "type": "object"
      },
      "FulcraCalendarRecurrenceRule": {
        "description": "A rule that describes the rule(s) underlying the frequency of a\nrecurring calendar event.",
        "properties": {
          "calendar_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Calendar ID",
            "title": "Calendar Id"
          },
          "days_of_the_month": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "description": "A list of the days of the month on which this event occurs.",
            "title": "Days Of The Month"
          },
          "days_of_the_week": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "description": "A list of the days of the week on which this event occurs.",
            "title": "Days Of The Week"
          },
          "days_of_the_year": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "description": "A list of the days of the year on which this event occurs.",
            "title": "Days Of The Year"
          },
          "first_day_of_the_week": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "A value indicating which day of the week is considered to be the beginning of the week.  1 is Sunday, 7 is Saturday.",
            "title": "First Day Of The Week"
          },
          "frequency": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The description of the frequency for a recurring event (e.g. 'weekly')",
            "title": "Frequency"
          },
          "interval": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "Using the value of `frequency` as the unit, the number of units that occur between events.",
            "title": "Interval"
          },
          "months_of_the_year": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "description": "A list of the months of the year on which this event occurs.",
            "title": "Months Of The Year"
          },
          "recurrence_rule_id": {
            "description": "Recurrence rule ID",
            "format": "uuid",
            "title": "Recurrence Rule Id",
            "type": "string"
          },
          "set_positions": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "description": "A list of numbers that indicate which recurrences are included in this rule's frequency.",
            "title": "Set Positions"
          },
          "weeks_of_the_year": {
            "anyOf": [
              {
                "items": {},
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "description": "A list of the weeks of the year on which this event occurs.",
            "title": "Weeks Of The Year"
          }
        },
        "required": [
          "recurrence_rule_id",
          "calendar_id",
          "frequency",
          "interval",
          "first_day_of_the_week",
          "days_of_the_week",
          "days_of_the_month",
          "days_of_the_year",
          "weeks_of_the_year",
          "months_of_the_year",
          "set_positions"
        ],
        "title": "FulcraCalendarRecurrenceRule",
        "type": "object"
      },
      "FulcraCategory": {
        "description": "fulcra data categories",
        "enum": [
          "annotations",
          "sleep",
          "healthkit",
          "health",
          "mindfulness",
          "focus",
          "fulcra",
          "location",
          "user_configured",
          "base_type"
        ],
        "title": "FulcraCategory",
        "type": "string"
      },
      "FulcraCustomInput": {
        "additionalProperties": false,
        "properties": {
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "default_event_tags": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "deleted": {
            "type": "boolean"
          },
          "description": {
            "type": "string"
          },
          "fulcra_data_type": {
            "type": "string"
          },
          "fulcra_source": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "fulcra_userid": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "fulcra_userid",
          "created_at",
          "name",
          "deleted",
          "url"
        ],
        "type": "object"
      },
      "FulcraDataSource": {
        "properties": {
          "id": {
            "description": "Fulcra Data Source ID",
            "format": "uuid",
            "title": "Id",
            "type": "string"
          },
          "metadata": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "default": {},
            "description": "Vendor-specific source metadata",
            "title": "Metadata"
          },
          "name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Fulcra Data Source Name",
            "title": "Name"
          },
          "parent_id": {
            "anyOf": [
              {
                "format": "uuid",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Parent Fulcra Data Source ID",
            "title": "Parent Id"
          },
          "vendor_id": {
            "description": "Vendor-specific source ID",
            "title": "Vendor Id",
            "type": "string"
          }
        },
        "required": [
          "id",
          "vendor_id"
        ],
        "title": "FulcraDataSource",
        "type": "object"
      },
      "FulcraEventRecord": {
        "description": "spec metadata for a fulcra event record",
        "properties": {
          "schema": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Schema"
          },
          "type": {
            "const": "event",
            "default": "event",
            "description": "Record Type",
            "title": "Type",
            "type": "string"
          }
        },
        "title": "FulcraEventRecord",
        "type": "object"
      },
      "FulcraFileUploadDataType": {
        "additionalProperties": false,
        "properties": {
          "data_type": {
            "type": "string"
          },
          "state": {
            "type": "string"
          }
        },
        "required": [
          "data_type",
          "state"
        ],
        "type": "object"
      },
      "FulcraFileUploadInput": {
        "additionalProperties": false,
        "properties": {
          "archived_at": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "deleted_at": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "fulcra_userid": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "last_scanned": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "restored_from_id": {
            "type": "string"
          },
          "scan_state": {
            "type": "string"
          },
          "size": {
            "format": "int64",
            "type": "integer"
          },
          "source_data_types": {
            "items": {
              "$ref": "#/components/schemas/FulcraFileUploadDataType"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "source_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "source_name": {
            "type": [
              "string",
              "null"
            ]
          },
          "state": {
            "type": "string"
          },
          "uploaded_at": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "fulcra_userid",
          "created_at",
          "state",
          "scan_state",
          "last_scanned",
          "name",
          "path",
          "size",
          "source_name",
          "source_id",
          "source_data_types",
          "deleted_at",
          "uploaded_at",
          "archived_at",
          "restored_from_id"
        ],
        "type": "object"
      },
      "FulcraLocationRecord": {
        "description": "spec metadata for a fulcra location record",
        "properties": {
          "schema": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Schema"
          },
          "type": {
            "const": "location",
            "default": "location",
            "description": "Record Type",
            "title": "Type",
            "type": "string"
          }
        },
        "title": "FulcraLocationRecord",
        "type": "object"
      },
      "FulcraMetricAggregation": {
        "description": "fulcra metric aggregation",
        "enum": [
          "cumulative",
          "discrete"
        ],
        "title": "FulcraMetricAggregation",
        "type": "string"
      },
      "FulcraMetricRecord": {
        "description": "represents the type or 'shape' of a record for a fulcra data type",
        "properties": {
          "aggregation": {
            "$ref": "#/components/schemas/FulcraMetricAggregation",
            "description": "Metric aggregation",
            "examples": [
              "cumulative",
              "discrete"
            ]
          },
          "scale": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FulcraMetricRecordScale"
              },
              {
                "type": "null"
              }
            ],
            "description": "Scale metric value should be measured on"
          },
          "schema": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Schema"
          },
          "type": {
            "const": "metric",
            "default": "metric",
            "description": "Record Type",
            "title": "Type",
            "type": "string"
          },
          "unit": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Unit of measurement",
            "examples": [
              "mg",
              "bpm",
              "percent",
              "lbs"
            ],
            "title": "Unit"
          },
          "value_map": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "string"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "description": "Map of metric values to human readable descriptors",
            "title": "Value Map"
          }
        },
        "required": [
          "aggregation"
        ],
        "title": "FulcraMetricRecord",
        "type": "object"
      },
      "FulcraMetricRecordScale": {
        "properties": {
          "max": {
            "description": "Maximum value of the scale",
            "title": "Max",
            "type": "integer"
          },
          "min": {
            "description": "Minimum value of the scale",
            "title": "Min",
            "type": "integer"
          },
          "step": {
            "default": 1,
            "description": "Stepping",
            "title": "Step",
            "type": "integer"
          }
        },
        "required": [
          "min",
          "max"
        ],
        "title": "FulcraMetricRecordScale",
        "type": "object"
      },
      "FulcraRecordType": {
        "description": "Fulcra record types",
        "enum": [
          "metric",
          "event",
          "location",
          "entry",
          "tombstone"
        ],
        "title": "FulcraRecordType",
        "type": "string"
      },
      "FulcraReflection": {
        "additionalProperties": false,
        "properties": {
          "annotations": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "created_at": {
            "format": "date-time",
            "type": "string"
          },
          "data_types": {
            "items": {
              "$ref": "#/components/schemas/FulcraReflectionDataType"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "deleted_at": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": "string"
          },
          "fulcra_userid": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "parent_template_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "schedule": {
            "$ref": "#/components/schemas/FulcraReflectionSchedule"
          },
          "updated_at": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "fulcra_userid",
          "created_at",
          "updated_at",
          "deleted_at",
          "name",
          "description",
          "annotations",
          "schedule",
          "data_types",
          "parent_template_id"
        ],
        "type": "object"
      },
      "FulcraReflectionDataType": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string"
          },
          "resource_id": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "FulcraReflectionSchedule": {
        "additionalProperties": false,
        "properties": {
          "cron": {
            "type": "string"
          },
          "end_at": {
            "type": [
              "string",
              "null"
            ]
          },
          "paused": {
            "type": "boolean"
          },
          "start_at": {
            "type": [
              "string",
              "null"
            ]
          },
          "time_zone": {
            "type": "string"
          }
        },
        "required": [
          "cron",
          "paused",
          "start_at",
          "end_at",
          "time_zone"
        ],
        "type": "object"
      },
      "FulcraServiceStatus": {
        "description": "The service status (i.e. subscription status) for a user.\n\nThis includes paid subscriptions plus any extra free time/etc. granted\nby Fulcra.",
        "properties": {
          "active_until": {
            "format": "date-time",
            "title": "Active Until",
            "type": "string"
          },
          "grace_period_ends": {
            "format": "date-time",
            "title": "Grace Period Ends",
            "type": "string"
          },
          "is_active": {
            "title": "Is Active",
            "type": "boolean"
          },
          "manage_url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Manage Url"
          },
          "service_type": {
            "$ref": "#/components/schemas/FulcraServiceType"
          }
        },
        "required": [
          "is_active",
          "service_type",
          "active_until",
          "grace_period_ends",
          "manage_url"
        ],
        "title": "FulcraServiceStatus",
        "type": "object"
      },
      "FulcraServiceType": {
        "enum": [
          "subscribed_apple",
          "subscribed_stripe",
          "free_service",
          "staff",
          "none"
        ],
        "title": "FulcraServiceType",
        "type": "string"
      },
      "FulcraTag": {
        "properties": {
          "id": {
            "format": "uuid",
            "title": "Id",
            "type": "string"
          },
          "name": {
            "maxLength": 30,
            "minLength": 1,
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "name",
          "id"
        ],
        "title": "FulcraTag",
        "type": "object"
      },
      "FulcraTombstoneRecord": {
        "description": "spec metadata for a fulcra tombstone (aka deleted record)",
        "properties": {
          "schema": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Schema"
          },
          "type": {
            "const": "tombstone",
            "default": "tombstone",
            "description": "Record Type",
            "title": "Type",
            "type": "string"
          }
        },
        "title": "FulcraTombstoneRecord",
        "type": "object"
      },
      "FulcraUserDataAverages": {
        "description": "Represents a user's processed data averages",
        "properties": {
          "records_per_day": {
            "description": "Records processed per day",
            "title": "Records Per Day",
            "type": "integer"
          },
          "records_per_hour": {
            "description": "Records processed per hour",
            "title": "Records Per Hour",
            "type": "integer"
          },
          "records_per_month": {
            "description": "Records processed per month",
            "title": "Records Per Month",
            "type": "integer"
          },
          "records_per_week": {
            "description": "Records processed per week",
            "title": "Records Per Week",
            "type": "integer"
          }
        },
        "required": [
          "records_per_hour",
          "records_per_day",
          "records_per_week",
          "records_per_month"
        ],
        "title": "FulcraUserDataAverages",
        "type": "object"
      },
      "FulcraUserDataTotals": {
        "description": "Represents a user's processed data totals",
        "properties": {
          "averages": {
            "$ref": "#/components/schemas/FulcraUserDataAverages"
          },
          "total_days": {
            "description": "Total days of processed records",
            "title": "Total Days",
            "type": "integer"
          },
          "total_devices": {
            "description": "Total devices user has sent data from",
            "title": "Total Devices",
            "type": "integer"
          },
          "total_records": {
            "description": "Total processed records",
            "title": "Total Records",
            "type": "integer"
          },
          "total_sources": {
            "description": "Total sources user has sent data from",
            "title": "Total Sources",
            "type": "integer"
          }
        },
        "required": [
          "total_records",
          "total_devices",
          "total_sources",
          "total_days",
          "averages"
        ],
        "title": "FulcraUserDataTotals",
        "type": "object"
      },
      "FulcraUserPreferences": {
        "description": "A Fulcra user's preferences",
        "properties": {
          "calendar_events_data_track_filter_map": {
            "anyOf": [
              {
                "additionalProperties": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Calendar Events Data Track Filter Map"
          },
          "calendars": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Calendars"
          },
          "location_resolution": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "integer"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Location Resolution"
          },
          "periods_of_day": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PeriodsOfDay"
              },
              {
                "type": "null"
              }
            ],
            "default": {
              "afternoon": "12:00:00",
              "end_of_day": "21:00:00",
              "evening": "18:00:00",
              "morning": "08:00:00"
            },
            "description": "User defined periods of the day"
          },
          "pinned_metrics_count_map": {
            "anyOf": [
              {
                "additionalProperties": {
                  "type": "integer"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pinned Metrics Count Map"
          },
          "selected_calendar_vendor_ids": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Selected Calendar Vendor Ids"
          },
          "selected_metrics": {
            "anyOf": [
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ],
            "title": "Selected Metrics"
          },
          "selected_metrics_map": {
            "anyOf": [
              {
                "additionalProperties": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Selected Metrics Map"
          },
          "timezone": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Timezone"
          }
        },
        "title": "FulcraUserPreferences",
        "type": "object"
      },
      "GCSPubSubNotification": {
        "additionalProperties": false,
        "properties": {
          "message": {
            "$ref": "#/components/schemas/GCSPubSubNotificationMessage"
          },
          "subscription": {
            "type": "string"
          }
        },
        "required": [
          "message",
          "subscription"
        ],
        "type": "object"
      },
      "GCSPubSubNotificationAttributes": {
        "additionalProperties": false,
        "properties": {
          "bucketId": {
            "type": "string"
          },
          "eventTime": {
            "format": "date-time",
            "type": "string"
          },
          "eventType": {
            "type": "string"
          },
          "notificationConfig": {
            "type": "string"
          },
          "objectGeneration": {
            "type": "string"
          },
          "objectId": {
            "type": "string"
          },
          "overwrittenByGeneration": {
            "type": [
              "string",
              "null"
            ]
          },
          "overwroteGeneration": {
            "type": [
              "string",
              "null"
            ]
          },
          "payloadFormat": {
            "type": "string"
          }
        },
        "required": [
          "bucketId",
          "eventTime",
          "eventType",
          "notificationConfig",
          "objectGeneration",
          "objectId",
          "payloadFormat"
        ],
        "type": "object"
      },
      "GCSPubSubNotificationMessage": {
        "additionalProperties": true,
        "properties": {
          "attributes": {
            "$ref": "#/components/schemas/GCSPubSubNotificationAttributes"
          },
          "data": {
            "type": "string"
          },
          "messageId": {
            "type": "string"
          },
          "publishTime": {
            "type": "string"
          }
        },
        "required": [
          "attributes",
          "data",
          "messageId",
          "publishTime"
        ],
        "type": "object"
      },
      "GeofenceLocation": {
        "description": "Represents a geofence: in other words, a specific location in the real world\nwith a defined area and boundary.  These are often used to define rules for\ntriggering events and/or notifications.",
        "properties": {
          "altitude": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "The altitude above sea level associated with the area (m)",
            "title": "Altitude"
          },
          "ellipsoidal_altitude": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "The altitude as height above the WGS 84 ellipsoid (m)",
            "title": "Ellipsoidal Altitude"
          },
          "floor": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "The floor of the building.Note: Reference points (e.g. 'first floor' may differ by locale.",
            "title": "Floor"
          },
          "horizontal_accuracy": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "The horizontal accuracy for the location (m)",
            "title": "Horizontal Accuracy"
          },
          "is_produced_by_accessory": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "True if the device that gathered this location received the value from an external accessory.",
            "title": "Is Produced By Accessory"
          },
          "is_simulated_by_software": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "description": "True if the device indicates that the location was simulated by software.",
            "title": "Is Simulated By Software"
          },
          "latitude": {
            "description": "The latitude of the center of the area (deg)",
            "title": "Latitude",
            "type": "number"
          },
          "location_timestamp": {
            "anyOf": [
              {
                "format": "date-time",
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The time at which this location was calculated.",
            "title": "Location Timestamp"
          },
          "longitude": {
            "description": "The longitude of the center of the area (deg)",
            "title": "Longitude",
            "type": "number"
          },
          "radius": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "The radius of the location area (m)",
            "title": "Radius"
          },
          "title": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "The geofence location's title.",
            "title": "Title"
          },
          "vertical_accuracy": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "The vertical accuracy for the location (m)",
            "title": "Vertical Accuracy"
          }
        },
        "required": [
          "title",
          "latitude",
          "longitude",
          "altitude",
          "ellipsoidal_altitude",
          "floor",
          "location_timestamp",
          "is_produced_by_accessory",
          "is_simulated_by_software",
          "horizontal_accuracy",
          "vertical_accuracy",
          "radius"
        ],
        "title": "GeofenceLocation",
        "type": "object"
      },
      "GrantServiceRequest": {
        "properties": {
          "months": {
            "title": "Months",
            "type": "integer"
          }
        },
        "required": [
          "months"
        ],
        "title": "GrantServiceRequest",
        "type": "object"
      },
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "title": "Detail",
            "type": "array"
          }
        },
        "title": "HTTPValidationError",
        "type": "object"
      },
      "IdentifyFileUploadRequestPayload": {
        "additionalProperties": false,
        "properties": {
          "source_data_types": {
            "items": {
              "$ref": "#/components/schemas/FulcraFileUploadDataType"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "source_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "source_name": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "source_name",
          "source_id",
          "source_data_types"
        ],
        "type": "object"
      },
      "InsightReportVersion": {
        "enum": [
          "v0"
        ],
        "title": "InsightReportVersion",
        "type": "string"
      },
      "ListFileUploadResponseBody": {
        "additionalProperties": false,
        "properties": {
          "files": {
            "items": {
              "$ref": "#/components/schemas/FulcraFileUploadInput"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "folders": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "folders",
          "files"
        ],
        "type": "object"
      },
      "LocationSampleSource": {
        "description": "Represents a source to retrieve location data from.",
        "enum": [
          "ios",
          "google_maps"
        ],
        "title": "LocationSampleSource",
        "type": "string"
      },
      "MassMeasurement": {
        "description": "Represents a mass measurement configuration and may be inferred from weight",
        "properties": {
          "mass": {
            "$ref": "#/components/schemas/MassMeasurementSpec"
          },
          "measurement_type": {
            "const": "mass",
            "default": "mass",
            "title": "Measurement Type",
            "type": "string"
          },
          "metric_kind": {
            "$ref": "#/components/schemas/MetricKind",
            "default": "discrete",
            "description": "How the measurement should be aggregated"
          },
          "unit": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/MassUnit"
              },
              {
                "type": "null"
              }
            ]
          },
          "value_type": {
            "const": "real",
            "default": "real",
            "title": "Value Type",
            "type": "string"
          }
        },
        "required": [
          "mass"
        ],
        "title": "MassMeasurement",
        "type": "object"
      },
      "MassMeasurementSpec": {
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Default value",
            "title": "Value"
          }
        },
        "title": "MassMeasurementSpec",
        "type": "object"
      },
      "MassUnit": {
        "enum": [
          "ounce",
          "pound",
          "microgram",
          "milligram",
          "gram",
          "kilogram",
          "stone"
        ],
        "title": "MassUnit",
        "type": "string"
      },
      "MetricKind": {
        "enum": [
          "cumulative",
          "discrete"
        ],
        "title": "MetricKind",
        "type": "string"
      },
      "Mode": {
        "enum": [
          "start",
          "end",
          "split"
        ],
        "title": "Mode",
        "type": "string"
      },
      "MomentAnnotation": {
        "description": "Represents an annotation with no measurement",
        "properties": {
          "annotation_type": {
            "const": "moment",
            "default": "moment",
            "title": "Annotation Type",
            "type": "string"
          },
          "description": {
            "description": "Description",
            "title": "Description",
            "type": "string"
          },
          "measurement_spec": {
            "title": "Measurement Spec",
            "type": "null"
          },
          "name": {
            "description": "Name",
            "title": "Name",
            "type": "string"
          },
          "spec": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AnnotationSpecContainer"
              },
              {
                "type": "null"
              }
            ]
          },
          "tags": {
            "description": "Default tags",
            "items": {
              "format": "uuid",
              "type": "string"
            },
            "title": "Tags",
            "type": "array"
          }
        },
        "required": [
          "name",
          "description",
          "tags"
        ],
        "title": "MomentAnnotation",
        "type": "object"
      },
      "NumericAnnotation": {
        "description": "Represents an annotation with a quantitative property measurement",
        "properties": {
          "annotation_type": {
            "const": "numeric",
            "default": "numeric",
            "title": "Annotation Type",
            "type": "string"
          },
          "description": {
            "description": "Description",
            "title": "Description",
            "type": "string"
          },
          "measurement_spec": {
            "discriminator": {
              "mapping": {
                "count": "#/components/schemas/CountMeasurement",
                "custom": "#/components/schemas/CustomMeasurement",
                "distance": "#/components/schemas/DistanceMeasurement",
                "mass": "#/components/schemas/MassMeasurement",
                "percent": "#/components/schemas/PercentMeasurement",
                "period": "#/components/schemas/PeriodMeasurement",
                "temperature": "#/components/schemas/TemperatureMeasurement",
                "volume": "#/components/schemas/VolumeMeasurement"
              },
              "propertyName": "measurement_type"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/CountMeasurement"
              },
              {
                "$ref": "#/components/schemas/CustomMeasurement"
              },
              {
                "$ref": "#/components/schemas/DistanceMeasurement"
              },
              {
                "$ref": "#/components/schemas/MassMeasurement"
              },
              {
                "$ref": "#/components/schemas/PercentMeasurement"
              },
              {
                "$ref": "#/components/schemas/PeriodMeasurement"
              },
              {
                "$ref": "#/components/schemas/TemperatureMeasurement"
              },
              {
                "$ref": "#/components/schemas/VolumeMeasurement"
              }
            ],
            "title": "Measurement Spec"
          },
          "name": {
            "description": "Name",
            "title": "Name",
            "type": "string"
          },
          "spec": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/AnnotationSpecContainer"
              },
              {
                "type": "null"
              }
            ]
          },
          "tags": {
            "description": "Default tags",
            "items": {
              "format": "uuid",
              "type": "string"
            },
            "title": "Tags",
            "type": "array"
          }
        },
        "required": [
          "name",
          "description",
          "measurement_spec",
          "tags"
        ],
        "title": "NumericAnnotation",
        "type": "object"
      },
      "OutputMethod": {
        "enum": [
          "ndjson",
          "jstable",
          "jscolumns",
          "arrow",
          "arrowraw",
          "parquet",
          "csv",
          "quotecsv"
        ],
        "title": "OutputMethod",
        "type": "string"
      },
      "PeopleAnnotation": {
        "description": "Represents an annotation recording contact with other people",
        "properties": {
          "annotation_type": {
            "const": "people",
            "default": "people",
            "title": "Annotation Type",
            "type": "string"
          },
          "description": {
            "description": "Description",
            "title": "Description",
            "type": "string"
          },
          "measurement_spec": {
            "title": "Measurement Spec",
            "type": "null"
          },
          "name": {
            "description": "Name",
            "title": "Name",
            "type": "string"
          },
          "spec": {
            "title": "Spec",
            "type": "null"
          },
          "tags": {
            "description": "Default tags",
            "items": {
              "format": "uuid",
              "type": "string"
            },
            "title": "Tags",
            "type": "array"
          }
        },
        "required": [
          "name",
          "description",
          "tags"
        ],
        "title": "PeopleAnnotation",
        "type": "object"
      },
      "PercentMeasurement": {
        "description": "Represents a percentage measurement configuration",
        "properties": {
          "measurement_type": {
            "const": "percent",
            "default": "percent",
            "title": "Measurement Type",
            "type": "string"
          },
          "metric_kind": {
            "$ref": "#/components/schemas/MetricKind",
            "default": "discrete",
            "description": "How the measurement should be aggregated"
          },
          "percent": {
            "$ref": "#/components/schemas/PercentMeasurementSpec"
          },
          "unit": {
            "const": "percent",
            "default": "percent",
            "title": "Unit",
            "type": "string"
          },
          "value_type": {
            "const": "real",
            "default": "real",
            "title": "Value Type",
            "type": "string"
          }
        },
        "required": [
          "percent"
        ],
        "title": "PercentMeasurement",
        "type": "object"
      },
      "PercentMeasurementSpec": {
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Default value",
            "title": "Value"
          }
        },
        "title": "PercentMeasurementSpec",
        "type": "object"
      },
      "PeriodMeasurement": {
        "description": "Represents a time period measurement configuration",
        "properties": {
          "measurement_type": {
            "const": "period",
            "default": "period",
            "title": "Measurement Type",
            "type": "string"
          },
          "metric_kind": {
            "$ref": "#/components/schemas/MetricKind",
            "default": "discrete",
            "description": "How the measurement should be aggregated"
          },
          "period": {
            "$ref": "#/components/schemas/PeriodMeasurementSpec"
          },
          "unit": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PeriodUnit"
              },
              {
                "type": "null"
              }
            ]
          },
          "value_type": {
            "const": "real",
            "default": "real",
            "title": "Value Type",
            "type": "string"
          }
        },
        "required": [
          "period"
        ],
        "title": "PeriodMeasurement",
        "type": "object"
      },
      "PeriodMeasurementSpec": {
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Default value",
            "title": "Value"
          }
        },
        "title": "PeriodMeasurementSpec",
        "type": "object"
      },
      "PeriodUnit": {
        "enum": [
          "second"
        ],
        "title": "PeriodUnit",
        "type": "string"
      },
      "PeriodsOfDay": {
        "additionalProperties": false,
        "properties": {
          "afternoon": {
            "type": "string"
          },
          "end_of_day": {
            "type": "string"
          },
          "evening": {
            "type": "string"
          },
          "morning": {
            "type": "string"
          }
        },
        "required": [
          "morning",
          "afternoon",
          "evening",
          "end_of_day"
        ],
        "type": "object"
      },
      "RecentChangesResponseBody": {
        "additionalProperties": false,
        "properties": {
          "files": {
            "items": {
              "$ref": "#/components/schemas/RecentFileChange"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "files"
        ],
        "type": "object"
      },
      "RecentFileChange": {
        "additionalProperties": false,
        "properties": {
          "archived_at": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "deleted_at": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "full_name": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "last_scanned": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "scan_state": {
            "type": "string"
          },
          "size": {
            "format": "int64",
            "type": "integer"
          },
          "state": {
            "type": "string"
          },
          "uploaded_at": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "full_name",
          "scan_state",
          "last_scanned",
          "size",
          "uploaded_at",
          "archived_at",
          "deleted_at",
          "state"
        ],
        "type": "object"
      },
      "RescheduleFulcraReflectionsRequest": {
        "additionalProperties": false,
        "properties": {
          "periods_of_day": {
            "$ref": "#/components/schemas/PeriodsOfDay"
          },
          "time_zone": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "ResponseFormat": {
        "enum": [
          "json",
          "csv"
        ],
        "title": "ResponseFormat",
        "type": "string"
      },
      "ScaleAnnotation": {
        "description": "Represents an annotation with a fixed scale measurement and customizable display",
        "properties": {
          "annotation_type": {
            "const": "scale",
            "default": "scale",
            "title": "Annotation Type",
            "type": "string"
          },
          "description": {
            "description": "Description",
            "title": "Description",
            "type": "string"
          },
          "measurement_spec": {
            "$ref": "#/components/schemas/ScaleMeasurement"
          },
          "name": {
            "description": "Name",
            "title": "Name",
            "type": "string"
          },
          "spec": {
            "$ref": "#/components/schemas/ScaleAnnotationSpecContainer-Input"
          },
          "tags": {
            "description": "Default tags",
            "items": {
              "format": "uuid",
              "type": "string"
            },
            "title": "Tags",
            "type": "array"
          }
        },
        "required": [
          "name",
          "description",
          "measurement_spec",
          "spec",
          "tags"
        ],
        "title": "ScaleAnnotation",
        "type": "object"
      },
      "ScaleAnnotationSpec-Input": {
        "properties": {
          "label_mapping": {
            "$ref": "#/components/schemas/StringScaleMapping",
            "description": "Optional label for each scale value"
          },
          "scale_mapping": {
            "anyOf": [
              {
                "discriminator": {
                  "mapping": {
                    "color": "#/components/schemas/ColorScaleMapping-Input",
                    "emoji": "#/components/schemas/EmojiScaleMapping-Input"
                  },
                  "propertyName": "mapping_type"
                },
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ColorScaleMapping-Input"
                  },
                  {
                    "$ref": "#/components/schemas/EmojiScaleMapping-Input"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "Display value mappoing for each scale value",
            "title": "Scale Mapping"
          }
        },
        "required": [
          "label_mapping"
        ],
        "title": "ScaleAnnotationSpec",
        "type": "object"
      },
      "ScaleAnnotationSpec-Output": {
        "properties": {
          "label_mapping": {
            "$ref": "#/components/schemas/StringScaleMapping",
            "description": "Optional label for each scale value"
          },
          "scale_mapping": {
            "anyOf": [
              {
                "discriminator": {
                  "mapping": {
                    "color": "#/components/schemas/ColorScaleMapping-Output",
                    "emoji": "#/components/schemas/EmojiScaleMapping-Output"
                  },
                  "propertyName": "mapping_type"
                },
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/ColorScaleMapping-Output"
                  },
                  {
                    "$ref": "#/components/schemas/EmojiScaleMapping-Output"
                  }
                ]
              },
              {
                "type": "null"
              }
            ],
            "description": "Display value mappoing for each scale value",
            "title": "Scale Mapping"
          }
        },
        "required": [
          "label_mapping"
        ],
        "title": "ScaleAnnotationSpec",
        "type": "object"
      },
      "ScaleAnnotationSpecContainer-Input": {
        "properties": {
          "default_note": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Default note text, if any",
            "title": "Default Note"
          },
          "scale": {
            "$ref": "#/components/schemas/ScaleAnnotationSpec-Input"
          }
        },
        "required": [
          "scale"
        ],
        "title": "ScaleAnnotationSpecContainer",
        "type": "object"
      },
      "ScaleAnnotationSpecContainer-Output": {
        "properties": {
          "default_note": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Default note text, if any",
            "title": "Default Note"
          },
          "scale": {
            "$ref": "#/components/schemas/ScaleAnnotationSpec-Output"
          }
        },
        "required": [
          "scale"
        ],
        "title": "ScaleAnnotationSpecContainer",
        "type": "object"
      },
      "ScaleMeasurement": {
        "description": "Represents a discrete scale measurement configuration with minimum and maximum values",
        "properties": {
          "measurement_type": {
            "const": "scale",
            "default": "scale",
            "title": "Measurement Type",
            "type": "string"
          },
          "metric_kind": {
            "$ref": "#/components/schemas/MetricKind",
            "default": "discrete",
            "description": "How the measurement should be aggregated"
          },
          "scale": {
            "$ref": "#/components/schemas/ScaleMeasurementSpec"
          },
          "unit": {
            "title": "Unit",
            "type": "null"
          },
          "value_type": {
            "const": "integer",
            "default": "integer",
            "title": "Value Type",
            "type": "string"
          }
        },
        "required": [
          "scale"
        ],
        "title": "ScaleMeasurement",
        "type": "object"
      },
      "ScaleMeasurementSpec": {
        "properties": {
          "max_allowed": {
            "description": "Maxiumum value on scale",
            "title": "Max Allowed",
            "type": "integer"
          },
          "min_allowed": {
            "description": "Minimum value on scale",
            "title": "Min Allowed",
            "type": "integer"
          },
          "value": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "description": "Default value",
            "title": "Value"
          }
        },
        "required": [
          "min_allowed",
          "max_allowed"
        ],
        "title": "ScaleMeasurementSpec",
        "type": "object"
      },
      "SortOrder": {
        "enum": [
          "asc",
          "desc"
        ],
        "title": "SortOrder",
        "type": "string"
      },
      "StringScaleMapping": {
        "description": "Represents a scale mapping to strings or emojis",
        "properties": {
          "mapping_type": {
            "const": "string",
            "default": "string",
            "title": "Mapping Type",
            "type": "string"
          },
          "string": {
            "$ref": "#/components/schemas/StringScaleMappingSpec"
          }
        },
        "required": [
          "string"
        ],
        "title": "StringScaleMapping",
        "type": "object"
      },
      "StringScaleMappingSpec": {
        "properties": {
          "mapping": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Mapping of scale values to strings",
            "title": "Mapping",
            "type": "object"
          }
        },
        "required": [
          "mapping"
        ],
        "title": "StringScaleMappingSpec",
        "type": "object"
      },
      "TemperatureMeasurement": {
        "description": "Represents a temperature measurement configuration",
        "properties": {
          "measurement_type": {
            "const": "temperature",
            "default": "temperature",
            "title": "Measurement Type",
            "type": "string"
          },
          "metric_kind": {
            "$ref": "#/components/schemas/MetricKind",
            "default": "discrete",
            "description": "How the measurement should be aggregated"
          },
          "temperature": {
            "$ref": "#/components/schemas/TemperatureMeasurementSpec"
          },
          "unit": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/TemperatureUnit"
              },
              {
                "type": "null"
              }
            ]
          },
          "value_type": {
            "const": "real",
            "default": "real",
            "title": "Value Type",
            "type": "string"
          }
        },
        "required": [
          "temperature"
        ],
        "title": "TemperatureMeasurement",
        "type": "object"
      },
      "TemperatureMeasurementSpec": {
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Default value",
            "title": "Value"
          }
        },
        "title": "TemperatureMeasurementSpec",
        "type": "object"
      },
      "TemperatureUnit": {
        "enum": [
          "degree_celsius",
          "degree_fahrenheit"
        ],
        "title": "TemperatureUnit",
        "type": "string"
      },
      "TimeSeriesCalculation": {
        "description": "The descriptive statistics calculations that are available on certain\ntime-series calls.",
        "enum": [
          "max",
          "min",
          "delta",
          "mean",
          "uniques",
          "allpoints",
          "rollingmean",
          "mode"
        ],
        "title": "TimeSeriesCalculation",
        "type": "string"
      },
      "TimeZone": {
        "enum": [
          "Atlantic/Stanley",
          "America/Jujuy",
          "WET",
          "America/Winnipeg",
          "Asia/Bahrain",
          "Europe/Dublin",
          "America/Argentina/Catamarca",
          "America/Miquelon",
          "Canada/Yukon",
          "America/Noronha",
          "America/Marigot",
          "Antarctica/Macquarie",
          "MST",
          "America/Argentina/Jujuy",
          "Etc/GMT+6",
          "Asia/Pyongyang",
          "Africa/Juba",
          "Africa/Tunis",
          "America/Swift_Current",
          "America/Mendoza",
          "Africa/Casablanca",
          "Asia/Aqtobe",
          "America/Nome",
          "Antarctica/Palmer",
          "Africa/Conakry",
          "Africa/Algiers",
          "America/Costa_Rica",
          "Iran",
          "EST5EDT",
          "Canada/Atlantic",
          "EST",
          "Indian/Mahe",
          "Africa/Abidjan",
          "America/Dawson",
          "Atlantic/Madeira",
          "America/Inuvik",
          "PRC",
          "America/Rio_Branco",
          "Universal",
          "Africa/Mogadishu",
          "Pacific/Bougainville",
          "Asia/Almaty",
          "Africa/Lusaka",
          "Africa/Brazzaville",
          "Asia/Ulan_Bator",
          "Asia/Saigon",
          "America/Argentina/San_Luis",
          "Pacific/Niue",
          "Etc/GMT+5",
          "Europe/Andorra",
          "Africa/Bujumbura",
          "US/Central",
          "America/Chihuahua",
          "Asia/Samarkand",
          "Etc/GMT",
          "America/St_Johns",
          "Africa/Dakar",
          "Pacific/Tarawa",
          "Etc/Greenwich",
          "Etc/GMT-0",
          "Africa/Lagos",
          "Africa/Khartoum",
          "Pacific/Guam",
          "W-SU",
          "America/Coral_Harbour",
          "America/Kralendijk",
          "Atlantic/Faeroe",
          "Asia/Amman",
          "Asia/Macau",
          "Atlantic/Jan_Mayen",
          "America/Catamarca",
          "America/Resolute",
          "America/Monterrey",
          "Pacific/Fakaofo",
          "Europe/Vienna",
          "Asia/Yangon",
          "Portugal",
          "Pacific/Enderbury",
          "Factory",
          "America/Buenos_Aires",
          "Europe/Busingen",
          "America/Kentucky/Monticello",
          "GMT+0",
          "Africa/Bamako",
          "Israel",
          "America/Edmonton",
          "Canada/Mountain",
          "America/Argentina/San_Juan",
          "Navajo",
          "America/Tijuana",
          "Etc/GMT-8",
          "America/Boise",
          "Australia/Canberra",
          "Asia/Dacca",
          "America/Montreal",
          "Asia/Singapore",
          "Europe/Helsinki",
          "Asia/Karachi",
          "Australia/Hobart",
          "Europe/Belgrade",
          "Asia/Gaza",
          "Africa/Banjul",
          "Indian/Christmas",
          "Atlantic/Azores",
          "Asia/Manila",
          "Poland",
          "Europe/Amsterdam",
          "America/Havana",
          "Eire",
          "Europe/Minsk",
          "America/Mazatlan",
          "Asia/Ust-Nera",
          "America/Cancun",
          "Asia/Dili",
          "America/Argentina/Rio_Gallegos",
          "US/Indiana-Starke",
          "Indian/Comoro",
          "Asia/Aqtau",
          "America/Guayaquil",
          "Canada/Newfoundland",
          "Pacific/Chuuk",
          "America/Adak",
          "Europe/San_Marino",
          "Asia/Bishkek",
          "Asia/Hebron",
          "Pacific/Guadalcanal",
          "America/Maceio",
          "Australia/North",
          "Chile/EasterIsland",
          "Europe/Isle_of_Man",
          "Etc/GMT-10",
          "America/Moncton",
          "America/Indiana/Petersburg",
          "Pacific/Norfolk",
          "Europe/Saratov",
          "America/Juneau",
          "Europe/Vaduz",
          "Antarctica/Rothera",
          "America/Indiana/Marengo",
          "Africa/Kampala",
          "Asia/Jakarta",
          "America/St_Lucia",
          "Europe/Uzhgorod",
          "Europe/Chisinau",
          "America/La_Paz",
          "US/Mountain",
          "America/New_York",
          "America/Shiprock",
          "Asia/Irkutsk",
          "Asia/Kathmandu",
          "Brazil/West",
          "Asia/Yerevan",
          "America/Lima",
          "Pacific/Johnston",
          "Europe/Monaco",
          "Etc/GMT+11",
          "Europe/Luxembourg",
          "Asia/Sakhalin",
          "America/Ensenada",
          "Etc/GMT-6",
          "GMT",
          "EET",
          "Etc/GMT+0",
          "Japan",
          "Africa/Ouagadougou",
          "Asia/Damascus",
          "Jamaica",
          "ROK",
          "America/St_Thomas",
          "Europe/Brussels",
          "Europe/Sarajevo",
          "Asia/Dushanbe",
          "Australia/South",
          "Etc/GMT-4",
          "America/Yellowknife",
          "Brazil/DeNoronha",
          "Europe/Astrakhan",
          "Europe/Gibraltar",
          "America/Toronto",
          "Mexico/General",
          "Etc/UTC",
          "America/Scoresbysund",
          "America/Port-au-Prince",
          "America/Recife",
          "Asia/Novokuznetsk",
          "America/Thule",
          "Australia/Adelaide",
          "Australia/NSW",
          "Zulu",
          "Europe/Budapest",
          "America/Glace_Bay",
          "Asia/Thimbu",
          "Africa/Asmara",
          "Pacific/Tongatapu",
          "Egypt",
          "Etc/GMT-2",
          "Europe/Simferopol",
          "America/Los_Angeles",
          "America/Araguaina",
          "Europe/Istanbul",
          "Pacific/Samoa",
          "Antarctica/South_Pole",
          "America/Yakutat",
          "Hongkong",
          "Asia/Seoul",
          "Australia/Broken_Hill",
          "America/Paramaribo",
          "Asia/Khandyga",
          "America/Atka",
          "Asia/Krasnoyarsk",
          "America/Halifax",
          "America/Indiana/Winamac",
          "Asia/Famagusta",
          "Mexico/BajaNorte",
          "Australia/West",
          "Europe/Zurich",
          "America/Atikokan",
          "Asia/Vientiane",
          "MET",
          "America/Aruba",
          "Etc/GMT-9",
          "GB-Eire",
          "America/Grenada",
          "Asia/Kuwait",
          "Cuba",
          "Asia/Aden",
          "America/Panama",
          "Pacific/Kwajalein",
          "Asia/Dubai",
          "UCT",
          "Africa/Sao_Tome",
          "America/Iqaluit",
          "Australia/Queensland",
          "Africa/Nairobi",
          "America/Fortaleza",
          "Australia/Brisbane",
          "Asia/Magadan",
          "Africa/Kinshasa",
          "America/Indiana/Vincennes",
          "Europe/Volgograd",
          "America/Argentina/La_Rioja",
          "America/Indiana/Tell_City",
          "America/Hermosillo",
          "CST6CDT",
          "America/Creston",
          "America/Punta_Arenas",
          "Greenwich",
          "Australia/Lord_Howe",
          "America/Guyana",
          "America/Porto_Acre",
          "America/Guadeloupe",
          "America/Cayman",
          "America/Phoenix",
          "Asia/Omsk",
          "Pacific/Kosrae",
          "US/Aleutian",
          "Australia/ACT",
          "America/Vancouver",
          "Antarctica/Troll",
          "Africa/Monrovia",
          "America/Blanc-Sablon",
          "Africa/Asmera",
          "Pacific/Truk",
          "America/Santiago",
          "America/Belem",
          "America/Rosario",
          "America/Merida",
          "Asia/Atyrau",
          "Australia/Lindeman",
          "Africa/Freetown",
          "America/Louisville",
          "America/Puerto_Rico",
          "America/Nuuk",
          "America/Managua",
          "America/Asuncion",
          "Asia/Riyadh",
          "Europe/Vilnius",
          "America/Indiana/Vevay",
          "US/Eastern",
          "Europe/Skopje",
          "Asia/Tokyo",
          "America/St_Kitts",
          "Pacific/Noumea",
          "MST7MDT",
          "Chile/Continental",
          "Africa/Libreville",
          "Asia/Tel_Aviv",
          "Africa/Nouakchott",
          "America/St_Vincent",
          "Antarctica/McMurdo",
          "America/Santa_Isabel",
          "America/North_Dakota/Center",
          "Indian/Maldives",
          "Africa/Douala",
          "Asia/Chita",
          "Europe/Warsaw",
          "Europe/Nicosia",
          "Libya",
          "America/El_Salvador",
          "Africa/Gaborone",
          "Europe/Paris",
          "Asia/Tashkent",
          "America/Port_of_Spain",
          "Asia/Novosibirsk",
          "America/North_Dakota/Beulah",
          "Indian/Cocos",
          "Europe/Podgorica",
          "Europe/Tallinn",
          "America/Ojinaga",
          "Etc/GMT-5",
          "Europe/Moscow",
          "Asia/Srednekolymsk",
          "America/Belize",
          "America/Indiana/Indianapolis",
          "Europe/Malta",
          "Europe/Zaporozhye",
          "Africa/Ceuta",
          "Asia/Katmandu",
          "Asia/Yakutsk",
          "Africa/Luanda",
          "America/Indianapolis",
          "America/Tortola",
          "Etc/GMT+12",
          "Asia/Bangkok",
          "Arctic/Longyearbyen",
          "Etc/GMT+7",
          "America/Regina",
          "Etc/GMT+10",
          "Etc/GMT+9",
          "Europe/Jersey",
          "Asia/Ashkhabad",
          "America/Cambridge_Bay",
          "America/Santarem",
          "Asia/Kolkata",
          "Etc/GMT-11",
          "America/Antigua",
          "Europe/Copenhagen",
          "US/Hawaii",
          "America/Caracas",
          "NZ-CHAT",
          "Europe/Zagreb",
          "Pacific/Fiji",
          "America/Manaus",
          "localtime",
          "Brazil/East",
          "Europe/Prague",
          "Asia/Beirut",
          "Africa/Bissau",
          "Africa/Malabo",
          "Asia/Jayapura",
          "America/Fort_Nelson",
          "Asia/Dhaka",
          "Europe/Kyiv",
          "Asia/Tomsk",
          "Pacific/Auckland",
          "Etc/Universal",
          "America/Nassau",
          "Asia/Ujung_Pandang",
          "America/Nipigon",
          "Africa/Cairo",
          "Europe/Ljubljana",
          "America/Jamaica",
          "Antarctica/Mawson",
          "Europe/Vatican",
          "Asia/Chongqing",
          "Pacific/Wake",
          "America/Barbados",
          "America/Sitka",
          "Africa/El_Aaiun",
          "Europe/Guernsey",
          "Pacific/Ponape",
          "Antarctica/Syowa",
          "Asia/Brunei",
          "US/Arizona",
          "Indian/Mauritius",
          "Asia/Macao",
          "Etc/GMT+2",
          "Etc/GMT0",
          "Asia/Taipei",
          "Pacific/Port_Moresby",
          "Europe/Oslo",
          "Australia/Sydney",
          "Pacific/Kiritimati",
          "Asia/Barnaul",
          "America/Whitehorse",
          "Mexico/BajaSur",
          "Asia/Qyzylorda",
          "Europe/Bratislava",
          "Atlantic/Bermuda",
          "ROC",
          "Atlantic/St_Helena",
          "America/Campo_Grande",
          "Africa/Harare",
          "America/Anchorage",
          "Antarctica/Davis",
          "Etc/GMT-12",
          "America/Cayenne",
          "Asia/Istanbul",
          "Asia/Kamchatka",
          "Indian/Reunion",
          "Etc/GMT+1",
          "Europe/Lisbon",
          "America/Tegucigalpa",
          "America/Goose_Bay",
          "America/Dawson_Creek",
          "Asia/Qatar",
          "US/Alaska",
          "Antarctica/Casey",
          "Brazil/Acre",
          "America/Sao_Paulo",
          "Pacific/Easter",
          "Australia/Currie",
          "Africa/Addis_Ababa",
          "NZ",
          "America/Knox_IN",
          "America/Dominica",
          "PST8PDT",
          "America/Montevideo",
          "America/Curacao",
          "America/Chicago",
          "HST",
          "Canada/Eastern",
          "Asia/Kashgar",
          "Canada/Central",
          "America/Rainy_River",
          "Pacific/Marquesas",
          "Asia/Ulaanbaatar",
          "America/Virgin",
          "US/Samoa",
          "GMT0",
          "Pacific/Gambier",
          "Europe/Sofia",
          "Asia/Makassar",
          "America/Ciudad_Juarez",
          "GMT-0",
          "Australia/Melbourne",
          "Africa/Accra",
          "America/Fort_Wayne",
          "Etc/GMT+4",
          "Etc/GMT-13",
          "Africa/Bangui",
          "Asia/Ho_Chi_Minh",
          "Europe/Tiraspol",
          "Australia/Darwin",
          "Africa/Maputo",
          "America/North_Dakota/New_Salem",
          "Africa/Porto-Novo",
          "Europe/Tirane",
          "Asia/Harbin",
          "Atlantic/Faroe",
          "Asia/Hong_Kong",
          "Pacific/Funafuti",
          "Pacific/Tahiti",
          "Europe/Riga",
          "America/Kentucky/Louisville",
          "America/Argentina/Mendoza",
          "Europe/Belfast",
          "Pacific/Galapagos",
          "America/Godthab",
          "Asia/Vladivostok",
          "Asia/Qostanay",
          "Europe/London",
          "Asia/Colombo",
          "Asia/Choibalsan",
          "America/Lower_Princes",
          "Indian/Antananarivo",
          "Pacific/Nauru",
          "America/Santo_Domingo",
          "America/Mexico_City",
          "CET",
          "America/Eirunepe",
          "Asia/Urumqi",
          "Africa/Mbabane",
          "Pacific/Rarotonga",
          "Africa/Niamey",
          "America/Argentina/Ushuaia",
          "Europe/Stockholm",
          "Etc/UCT",
          "America/Cordoba",
          "Pacific/Honolulu",
          "US/Michigan",
          "Australia/LHI",
          "Turkey",
          "Pacific/Yap",
          "America/Grand_Turk",
          "Kwajalein",
          "Etc/GMT-3",
          "America/Boa_Vista",
          "Asia/Baghdad",
          "GB",
          "Europe/Kaliningrad",
          "Australia/Eucla",
          "America/Porto_Velho",
          "America/Cuiaba",
          "Singapore",
          "Africa/Djibouti",
          "Canada/Pacific",
          "America/Anguilla",
          "Europe/Ulyanovsk",
          "Europe/Madrid",
          "Indian/Chagos",
          "Africa/Lubumbashi",
          "Asia/Calcutta",
          "America/Argentina/ComodRivadavia",
          "America/Montserrat",
          "America/Metlakatla",
          "Atlantic/South_Georgia",
          "Atlantic/Canary",
          "Antarctica/DumontDUrville",
          "America/St_Barthelemy",
          "Asia/Kuala_Lumpur",
          "Indian/Kerguelen",
          "Pacific/Saipan",
          "Etc/GMT+3",
          "Asia/Pontianak",
          "Indian/Mayotte",
          "Africa/Dar_es_Salaam",
          "Etc/GMT+8",
          "Europe/Kirov",
          "Asia/Ashgabat",
          "US/Pacific",
          "America/Martinique",
          "Pacific/Efate",
          "Asia/Shanghai",
          "America/Bogota",
          "Asia/Tehran",
          "Europe/Rome",
          "America/Menominee",
          "Pacific/Chatham",
          "Asia/Rangoon",
          "Pacific/Apia",
          "America/Argentina/Buenos_Aires",
          "Europe/Samara",
          "Asia/Thimphu",
          "Asia/Kabul",
          "Etc/GMT-14",
          "Europe/Bucharest",
          "Etc/Zulu",
          "Europe/Berlin",
          "Africa/Timbuktu",
          "Atlantic/Reykjavik",
          "Canada/Saskatchewan",
          "Pacific/Pago_Pago",
          "America/Argentina/Tucuman",
          "Pacific/Kanton",
          "Pacific/Pitcairn",
          "America/Argentina/Salta",
          "Africa/Maseru",
          "Africa/Kigali",
          "Africa/Lome",
          "Europe/Kiev",
          "Pacific/Palau",
          "Europe/Mariehamn",
          "Australia/Victoria",
          "Africa/Johannesburg",
          "America/Rankin_Inlet",
          "America/Argentina/Cordoba",
          "Africa/Ndjamena",
          "Antarctica/Vostok",
          "Asia/Yekaterinburg",
          "Australia/Perth",
          "Asia/Kuching",
          "US/East-Indiana",
          "Iceland",
          "Etc/GMT-1",
          "America/Danmarkshavn",
          "America/Bahia_Banderas",
          "America/Detroit",
          "Pacific/Midway",
          "Australia/Yancowinna",
          "Atlantic/Cape_Verde",
          "America/Coyhaique",
          "Pacific/Wallis",
          "America/Guatemala",
          "Africa/Windhoek",
          "Asia/Nicosia",
          "Pacific/Pohnpei",
          "Africa/Tripoli",
          "Etc/GMT-7",
          "Asia/Phnom_Penh",
          "America/Pangnirtung",
          "Asia/Tbilisi",
          "Asia/Jerusalem",
          "Europe/Athens",
          "Africa/Blantyre",
          "Asia/Anadyr",
          "Asia/Muscat",
          "America/Matamoros",
          "America/Indiana/Knox",
          "UTC",
          "America/Thunder_Bay",
          "Pacific/Majuro",
          "America/Denver",
          "Asia/Chungking",
          "Asia/Oral",
          "Australia/Tasmania",
          "America/Bahia",
          "Asia/Hovd",
          "Asia/Baku"
        ],
        "title": "TimeZone",
        "type": "string"
      },
      "UpdateFileUploadDataTypePayload": {
        "additionalProperties": false,
        "properties": {
          "state": {
            "type": "string"
          }
        },
        "required": [
          "state"
        ],
        "type": "object"
      },
      "UpdateFulcraCustomInputRequest": {
        "additionalProperties": false,
        "properties": {
          "default_event_tags": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "fulcra_data_type": {
            "type": [
              "string",
              "null"
            ]
          },
          "fulcra_source": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "name": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "UpdateFulcraReflectionRequest": {
        "additionalProperties": false,
        "properties": {
          "annotations": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "data_types": {
            "items": {
              "$ref": "#/components/schemas/FulcraReflectionDataType"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "description": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "parent_template_id": {
            "type": "string"
          },
          "schedule": {
            "$ref": "#/components/schemas/FulcraReflectionSchedule"
          }
        },
        "type": "object"
      },
      "UploadResponse": {
        "properties": {
          "upload_id": {
            "format": "uuid",
            "title": "Upload Id",
            "type": "string"
          }
        },
        "required": [
          "upload_id"
        ],
        "title": "UploadResponse",
        "type": "object"
      },
      "V0UploadDataRequest": {
        "description": "Request structure for data upload",
        "properties": {
          "data": {
            "title": "Data",
            "type": "string"
          },
          "metadata": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Metadata"
          }
        },
        "required": [
          "data"
        ],
        "title": "V0UploadDataRequest",
        "type": "object"
      },
      "V1Alpha1FulcraAPISessionTokenReq": {
        "description": "Request for getting a fulcra api session token.",
        "properties": {
          "policy_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Policy Id"
          },
          "session_name": {
            "title": "Session Name",
            "type": "string"
          },
          "state": {
            "title": "State",
            "type": "string"
          }
        },
        "required": [
          "state",
          "session_name"
        ],
        "title": "V1Alpha1FulcraAPISessionTokenReq",
        "type": "object"
      },
      "V1Alpha1FulcraAPISessionTokenResponse": {
        "properties": {
          "token": {
            "title": "Token",
            "type": "string"
          }
        },
        "required": [
          "token"
        ],
        "title": "V1Alpha1FulcraAPISessionTokenResponse",
        "type": "object"
      },
      "V1Alpha1UserResponse": {
        "description": "Response for user info",
        "properties": {
          "created": {
            "format": "date-time",
            "title": "Created",
            "type": "string"
          },
          "intercom_token": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Intercom Token"
          },
          "preferences": {
            "$ref": "#/components/schemas/FulcraUserPreferences"
          },
          "service_status": {
            "$ref": "#/components/schemas/FulcraServiceStatus"
          },
          "status": {
            "title": "Status",
            "type": "string"
          },
          "tier": {
            "title": "Tier",
            "type": "string"
          },
          "userid": {
            "format": "uuid",
            "title": "Userid",
            "type": "string"
          }
        },
        "required": [
          "userid",
          "created",
          "status",
          "tier",
          "preferences",
          "service_status"
        ],
        "title": "V1Alpha1UserResponse",
        "type": "object"
      },
      "ValidationError": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "title": "Location",
            "type": "array"
          },
          "msg": {
            "title": "Message",
            "type": "string"
          },
          "type": {
            "title": "Error Type",
            "type": "string"
          }
        },
        "required": [
          "loc",
          "msg",
          "type"
        ],
        "title": "ValidationError",
        "type": "object"
      },
      "VolumeMeasurement": {
        "description": "Represents a physical volume measurement configuration",
        "properties": {
          "measurement_type": {
            "const": "volume",
            "default": "volume",
            "title": "Measurement Type",
            "type": "string"
          },
          "metric_kind": {
            "$ref": "#/components/schemas/MetricKind",
            "default": "discrete",
            "description": "How the measurement should be aggregated"
          },
          "unit": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/VolumeUnit"
              },
              {
                "type": "null"
              }
            ]
          },
          "value_type": {
            "const": "real",
            "default": "real",
            "title": "Value Type",
            "type": "string"
          },
          "volume": {
            "$ref": "#/components/schemas/VolumeMeasurementSpec"
          }
        },
        "required": [
          "volume"
        ],
        "title": "VolumeMeasurement",
        "type": "object"
      },
      "VolumeMeasurementSpec": {
        "properties": {
          "value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "description": "Default value",
            "title": "Value"
          }
        },
        "title": "VolumeMeasurementSpec",
        "type": "object"
      },
      "VolumeUnit": {
        "enum": [
          "teaspoon",
          "tablespoon",
          "fluid_ounce",
          "pint",
          "quart",
          "gallon",
          "millileter",
          "liter"
        ],
        "title": "VolumeUnit",
        "type": "string"
      },
      "dataservice__v1alpha1__datatypes__FulcraDataType": {
        "properties": {
          "category": {
            "description": "Category of data (health, location, calendar, etc)",
            "items": {
              "type": "string"
            },
            "title": "Category",
            "type": "array"
          },
          "class": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Class of data (metric, event, etc)",
            "readOnly": true,
            "title": "Class"
          },
          "description": {
            "description": "Description of the Fulcra Data Type",
            "title": "Description",
            "type": "string"
          },
          "name": {
            "description": "Name of the Fulcra Data Type",
            "title": "Name",
            "type": "string"
          }
        },
        "required": [
          "name",
          "description",
          "category",
          "class"
        ],
        "title": "FulcraDataType",
        "type": "object"
      },
      "fulcradatatypes__models__FulcraDataType": {
        "description": "The Fulcra \"Data Type\" provides descriptive context about data in the Fulcra Platform",
        "properties": {
          "api_version": {
            "$ref": "#/components/schemas/FulcraAPIVersion",
            "description": "Fulcra API version"
          },
          "categories": {
            "description": "Categories this data type belongs to",
            "items": {
              "$ref": "#/components/schemas/FulcraCategory"
            },
            "title": "Categories",
            "type": "array"
          },
          "class": {
            "$ref": "#/components/schemas/FulcraRecordType",
            "deprecated": true,
            "readOnly": true
          },
          "column_name": {
            "deprecated": true,
            "description": "Name of data column as returned by Fulcra APIs",
            "title": "Column Name",
            "type": "string"
          },
          "deprecated": {
            "default": false,
            "description": "Whether this type is deprecated",
            "title": "Deprecated",
            "type": "boolean"
          },
          "description": {
            "description": "Human-readable description",
            "title": "Description",
            "type": "string"
          },
          "icon": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Icon identifier",
            "title": "Icon"
          },
          "id": {
            "description": "Programmatic Identifier",
            "title": "Id",
            "type": "string"
          },
          "metric_kind": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/FulcraMetricAggregation"
              },
              {
                "type": "null"
              }
            ],
            "deprecated": true,
            "readOnly": true
          },
          "name": {
            "description": "Human-readable name",
            "title": "Name",
            "type": "string"
          },
          "queryable": {
            "default": true,
            "description": "Denotes if this type can be queried",
            "title": "Queryable",
            "type": "boolean"
          },
          "record_spec": {
            "description": "Metadata about the data that is recorded and queried",
            "discriminator": {
              "mapping": {
                "event": "#/components/schemas/FulcraEventRecord",
                "location": "#/components/schemas/FulcraLocationRecord",
                "metric": "#/components/schemas/FulcraMetricRecord",
                "tombstone": "#/components/schemas/FulcraTombstoneRecord"
              },
              "propertyName": "type"
            },
            "oneOf": [
              {
                "$ref": "#/components/schemas/FulcraEventRecord"
              },
              {
                "$ref": "#/components/schemas/FulcraMetricRecord"
              },
              {
                "$ref": "#/components/schemas/FulcraLocationRecord"
              },
              {
                "$ref": "#/components/schemas/FulcraTombstoneRecord"
              }
            ],
            "title": "Record Spec"
          },
          "recordable": {
            "default": true,
            "description": "Denotes if this type can be recorded",
            "title": "Recordable",
            "type": "boolean"
          },
          "unit": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "deprecated": true,
            "readOnly": true,
            "title": "Unit"
          }
        },
        "required": [
          "id",
          "name",
          "column_name",
          "api_version",
          "description",
          "categories",
          "record_spec",
          "class",
          "metric_kind",
          "unit"
        ],
        "title": "FulcraDataType",
        "type": "object"
      }
    },
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "info": {
    "contact": {
      "email": "contact@fulcradynamics.com",
      "name": "Fulcra Dynamics",
      "url": "https://www.fulcradynamics.com/"
    },
    "description": "REST API for interacting with the Fulcra Platform and Data Store",
    "termsOfService": "https://www.fulcradynamics.com/legal/terms-of-use",
    "title": "Fulcra Life API",
    "version": "1.0.0"
  },
  "openapi": "3.1.0",
  "paths": {
    "/data/v0/metrics_catalog": {
      "get": {
        "description": "Returns a list of Fulcra Metrics that can be queried.",
        "operationId": "user_get_metrics_catalog_data_v0_metrics_catalog_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/DataMetric"
                  },
                  "title": "Response User Get Metrics Catalog Data V0 Metrics Catalog Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Return catalog of queryable metric types",
        "tags": [
          "data"
        ]
      }
    },
    "/data/v0/time_series_grouped": {
      "get": {
        "description": "Allows users to retrieve their data in a normalized time series.",
        "operationId": "user_get_time_series_grouped_data_v0_time_series_grouped_get",
        "parameters": [
          {
            "description": "The starting timestamp (inclusive) in ISO 8601 format",
            "in": "query",
            "name": "start_time",
            "required": true,
            "schema": {
              "description": "The starting timestamp (inclusive) in ISO 8601 format",
              "examples": [
                "2023-02-01 00:00:00Z"
              ],
              "format": "date-time",
              "title": "Start Time",
              "type": "string"
            }
          },
          {
            "description": "The ending timestamp (exclusive) in ISO 8601 format",
            "in": "query",
            "name": "end_time",
            "required": true,
            "schema": {
              "description": "The ending timestamp (exclusive) in ISO 8601 format",
              "examples": [
                "2023-02-03 00:00:00Z"
              ],
              "format": "date-time",
              "title": "End Time",
              "type": "string"
            }
          },
          {
            "description": "The list of metric names to include.",
            "in": "query",
            "name": "metrics",
            "required": true,
            "schema": {
              "description": "The list of metric names to include.",
              "examples": [
                "HeartRate"
              ],
              "items": {
                "type": "string"
              },
              "title": "Metrics",
              "type": "array"
            }
          },
          {
            "description": "The output format to generate.",
            "examples": {
              "example1": {
                "summary": "JSON table (schema / data separation)",
                "value": "jstable"
              },
              "example2": {
                "summary": "JSON columns (dict of columns)",
                "value": "jscolumns"
              },
              "example3": {
                "summary": "Apache Arrow / Feather format",
                "value": "arrow"
              },
              "example4": {
                "summary": "Parquet",
                "value": "parquet"
              },
              "example5": {
                "summary": "Apache Arrow / Feather uncompressed",
                "value": "arrowraw"
              },
              "example6": {
                "summary": "CSV",
                "value": "csv"
              },
              "example7": {
                "summary": "CSV (quote everything)",
                "value": "quotecsv"
              }
            },
            "in": "query",
            "name": "output",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OutputMethod",
              "description": "The output format to generate."
            }
          },
          {
            "description": "The user ID to retrieve data for.",
            "in": "query",
            "name": "fulcra_userid",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "The user ID to retrieve data for.",
              "examples": [
                "315c1b32-5399-40e1-b808-2346da7bf32e"
              ],
              "title": "Fulcra Userid"
            }
          },
          {
            "description": "The sample rate in seconds.",
            "examples": {
              "example1": {
                "summary": "one second",
                "value": 1
              },
              "example2": {
                "summary": "one hour",
                "value": 3600
              }
            },
            "in": "query",
            "name": "samprate",
            "required": false,
            "schema": {
              "default": 1,
              "description": "The sample rate in seconds.",
              "title": "Samprate",
              "type": "number"
            }
          },
          {
            "description": "Set to 1 to replace all unavailable values with the value 0.",
            "in": "query",
            "name": "replace_nulls",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "default": 0,
              "description": "Set to 1 to replace all unavailable values with the value 0.",
              "examples": [
                "1"
              ],
              "title": "Replace Nulls"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Retrieve normalized time series for multiple metrics",
        "tags": [
          "data"
        ]
      }
    },
    "/data/v0/{fulcra_userid}/apple_location_updates": {
      "get": {
        "description": "Retrieve the raw Apple location update samples for the specified\nuser during the specified period of time.",
        "operationId": "get_apple_location_updates_data_v0__fulcra_userid__apple_location_updates_get",
        "parameters": [
          {
            "in": "path",
            "name": "fulcra_userid",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Fulcra Userid",
              "type": "string"
            }
          },
          {
            "description": "The starting timestamp in ISO 8601 format (inclusive)",
            "in": "query",
            "name": "start_time",
            "required": true,
            "schema": {
              "description": "The starting timestamp in ISO 8601 format (inclusive)",
              "examples": [
                "2023-02-01 00:00:00Z"
              ],
              "format": "date-time",
              "title": "Start Time",
              "type": "string"
            }
          },
          {
            "description": "The ending timestamp in ISO 8601 format (exclusive)",
            "in": "query",
            "name": "end_time",
            "required": true,
            "schema": {
              "description": "The ending timestamp in ISO 8601 format (exclusive)",
              "examples": [
                "2023-02-03 00:00:00Z"
              ],
              "format": "date-time",
              "title": "End Time",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Return Apple geo-location update samples for a user",
        "tags": [
          "data",
          "location"
        ]
      }
    },
    "/data/v0/{fulcra_userid}/apple_location_visits": {
      "get": {
        "description": "Retrieve the raw Apple location visit samples for the specified\nuser during the specified period of time.",
        "operationId": "get_apple_location_visits_data_v0__fulcra_userid__apple_location_visits_get",
        "parameters": [
          {
            "in": "path",
            "name": "fulcra_userid",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Fulcra Userid",
              "type": "string"
            }
          },
          {
            "description": "The starting timestamp in ISO 8601 format (inclusive)",
            "in": "query",
            "name": "start_time",
            "required": true,
            "schema": {
              "description": "The starting timestamp in ISO 8601 format (inclusive)",
              "examples": [
                "2023-02-01 00:00:00Z"
              ],
              "format": "date-time",
              "title": "Start Time",
              "type": "string"
            }
          },
          {
            "description": "The ending timestamp in ISO 8601 format (exclusive)",
            "in": "query",
            "name": "end_time",
            "required": true,
            "schema": {
              "description": "The ending timestamp in ISO 8601 format (exclusive)",
              "examples": [
                "2023-02-03 00:00:00Z"
              ],
              "format": "date-time",
              "title": "End Time",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Return Apple location visit samples for a user",
        "tags": [
          "data"
        ]
      }
    },
    "/data/v0/{fulcra_userid}/apple_workouts": {
      "get": {
        "description": "Retrieve the Apple workouts that occurred for the user during the specified\nperiod of time.",
        "operationId": "get_apple_workouts_data_v0__fulcra_userid__apple_workouts_get",
        "parameters": [
          {
            "in": "path",
            "name": "fulcra_userid",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Fulcra Userid",
              "type": "string"
            }
          },
          {
            "description": "The starting timestamp in ISO 8601 format (inclusive)",
            "in": "query",
            "name": "start_time",
            "required": true,
            "schema": {
              "description": "The starting timestamp in ISO 8601 format (inclusive)",
              "examples": [
                "2023-02-01 00:00:00Z"
              ],
              "format": "date-time",
              "title": "Start Time",
              "type": "string"
            }
          },
          {
            "description": "The ending timestamp in ISO 8601 format (exclusive)",
            "in": "query",
            "name": "end_time",
            "required": true,
            "schema": {
              "description": "The ending timestamp in ISO 8601 format (exclusive)",
              "examples": [
                "2023-02-03 00:00:00Z"
              ],
              "format": "date-time",
              "title": "End Time",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/FulcraAppleWorkout"
                  },
                  "title": "Response Get Apple Workouts Data V0  Fulcra Userid  Apple Workouts Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "\n        Return Apple Healthkit Workout data\n         ",
        "tags": [
          "data"
        ]
      }
    },
    "/data/v0/{fulcra_userid}/calendar_events": {
      "get": {
        "description": "Returns calendar events for a user.",
        "operationId": "get_calendar_events_data_v0__fulcra_userid__calendar_events_get",
        "parameters": [
          {
            "in": "path",
            "name": "fulcra_userid",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Fulcra Userid",
              "type": "string"
            }
          },
          {
            "description": "The starting timestamp in ISO 8601 format (inclusive)",
            "in": "query",
            "name": "start_time",
            "required": true,
            "schema": {
              "description": "The starting timestamp in ISO 8601 format (inclusive)",
              "examples": [
                "2023-02-01 00:00:00Z"
              ],
              "format": "date-time",
              "title": "Start Time",
              "type": "string"
            }
          },
          {
            "description": "The ending timestamp in ISO 8601 format (exclusive)",
            "in": "query",
            "name": "end_time",
            "required": true,
            "schema": {
              "description": "The ending timestamp in ISO 8601 format (exclusive)",
              "examples": [
                "2023-02-03 00:00:00Z"
              ],
              "format": "date-time",
              "title": "End Time",
              "type": "string"
            }
          },
          {
            "description": "A list of IDs of calendars to search. Only results from these calendars will be returned.",
            "in": "query",
            "name": "calendar_ids",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "items": {
                    "format": "uuid",
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "description": "A list of IDs of calendars to search. Only results from these calendars will be returned.",
              "examples": [
                "83bcaf7e-734a-4bab-9553-426ee70f67a1"
              ],
              "title": "Calendar Ids"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/FulcraCalendarEvent"
                  },
                  "title": "Response Get Calendar Events Data V0  Fulcra Userid  Calendar Events Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Retrieve a collection of user's calendar events",
        "tags": [
          "data",
          "calendars"
        ]
      }
    },
    "/data/v0/{fulcra_userid}/calendars": {
      "get": {
        "description": "Retrieve a collection of the user's calendars.",
        "operationId": "get_user_calendars_data_v0__fulcra_userid__calendars_get",
        "parameters": [
          {
            "in": "path",
            "name": "fulcra_userid",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Fulcra Userid",
              "type": "string"
            }
          },
          {
            "description": "A list of identifiers (calendar_identifier) of calendars to search. Only results from these calendars will be returned.",
            "in": "query",
            "name": "vendor_ids",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "description": "A list of identifiers (calendar_identifier) of calendars to search. Only results from these calendars will be returned.",
              "examples": [
                "4B3F60DC-C524-441D-8927-A9CB86EB32C4"
              ],
              "title": "Vendor Ids"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/FulcraCalendar"
                  },
                  "title": "Response Get User Calendars Data V0  Fulcra Userid  Calendars Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Retrieve a collection of user's calendars",
        "tags": [
          "data",
          "calendars"
        ]
      }
    },
    "/data/v0/{fulcra_userid}/gmaps_location_updates": {
      "get": {
        "description": "Retrieve the raw Apple location update samples for the specified\nuser during the specified period of time.",
        "operationId": "get_gmaps_location_updates_data_v0__fulcra_userid__gmaps_location_updates_get",
        "parameters": [
          {
            "in": "path",
            "name": "fulcra_userid",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Fulcra Userid",
              "type": "string"
            }
          },
          {
            "description": "The starting timestamp in ISO 8601 format (inclusive)",
            "in": "query",
            "name": "start_time",
            "required": true,
            "schema": {
              "description": "The starting timestamp in ISO 8601 format (inclusive)",
              "examples": [
                "2023-02-01 00:00:00Z"
              ],
              "format": "date-time",
              "title": "Start Time",
              "type": "string"
            }
          },
          {
            "description": "The ending timestamp in ISO 8601 format (exclusive)",
            "in": "query",
            "name": "end_time",
            "required": true,
            "schema": {
              "description": "The ending timestamp in ISO 8601 format (exclusive)",
              "examples": [
                "2023-02-03 00:00:00Z"
              ],
              "format": "date-time",
              "title": "End Time",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fulcra_source_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Fulcra Source Id"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Return Google Maps geo-location update samples for a user",
        "tags": [
          "data",
          "location"
        ]
      }
    },
    "/data/v0/{fulcra_userid}/gmaps_location_updates/bounds": {
      "get": {
        "operationId": "get_gmaps_location_updates_bounds_data_v0__fulcra_userid__gmaps_location_updates_bounds_get",
        "parameters": [
          {
            "in": "path",
            "name": "fulcra_userid",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Fulcra Userid",
              "type": "string"
            }
          },
          {
            "description": "Filter against a fulcra source",
            "in": "query",
            "name": "source",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Filter against a fulcra source",
              "examples": [
                "com.fulcradynamics.file_upload.\u003cuuid\u003e"
              ],
              "title": "Source"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BoundsResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Return temporal bounds of Google Maps geo-location update samples",
        "tags": [
          "data",
          "location"
        ]
      }
    },
    "/data/v0/{fulcra_userid}/location_at_time": {
      "get": {
        "operationId": "get_closest_location_data_v0__fulcra_userid__location_at_time_get",
        "parameters": [
          {
            "in": "path",
            "name": "fulcra_userid",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Fulcra Userid",
              "type": "string"
            }
          },
          {
            "description": "The timestamp in ISO 8601 format to request location for",
            "examples": {
              "example1": {
                "summary": "08:00:00 UTC on Feb 1 2023",
                "value": "2023-02-01T08:00:00Z"
              },
              "example2": {
                "summary": "00:00:00 (UTC-8 time zone) on Feb 1 2023",
                "value": "2023-02-01T00:00:00-08:00"
              }
            },
            "in": "query",
            "name": "time",
            "required": true,
            "schema": {
              "description": "The timestamp in ISO 8601 format to request location for",
              "examples": [
                "2023-02-01T08:00:00Z",
                "2023-02-01T00:00:00-08:00"
              ],
              "format": "date-time",
              "title": "Time",
              "type": "string"
            }
          },
          {
            "description": "The amount of time to look back (and forward, if the include_after parameter is true) for a sample.",
            "examples": {
              "example1": {
                "summary": "two days",
                "value": 172800
              }
            },
            "in": "query",
            "name": "window_size",
            "required": false,
            "schema": {
              "default": 172800,
              "description": "The amount of time to look back (and forward, if the include_after parameter is true) for a sample.",
              "examples": [
                "172800"
              ],
              "title": "Window Size",
              "type": "integer"
            }
          },
          {
            "description": "When true, a sample that occurs after the requested time may be returned if it is the closest one.",
            "in": "query",
            "name": "include_after",
            "required": false,
            "schema": {
              "default": true,
              "description": "When true, a sample that occurs after the requested time may be returned if it is the closest one.",
              "examples": [
                "True"
              ],
              "title": "Include After",
              "type": "boolean"
            }
          },
          {
            "description": "When true, Fulcra will attempt to reverse geocode the location and include the location details in the results.",
            "in": "query",
            "name": "reverse_geocode",
            "required": false,
            "schema": {
              "default": false,
              "description": "When true, Fulcra will attempt to reverse geocode the location and include the location details in the results.",
              "examples": [
                "False"
              ],
              "title": "Reverse Geocode",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "\n        Gets the user's location at the specified time.  If no sample is\n        available for the exact time, searches for the closest sample up to\n        `window_size` seconds back.  If `include_after` is true, then also\n        searches `window_size` seconds forward.\n        ",
        "tags": [
          "data",
          "location"
        ]
      }
    },
    "/data/v0/{fulcra_userid}/location_time_series": {
      "get": {
        "description": "Retrieve a time series of locations that the user was at.",
        "operationId": "get_location_time_series_data_v0__fulcra_userid__location_time_series_get",
        "parameters": [
          {
            "in": "path",
            "name": "fulcra_userid",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Fulcra Userid",
              "type": "string"
            }
          },
          {
            "description": "The starting timestamp in ISO8601 format (inclusive)",
            "in": "query",
            "name": "start_time",
            "required": true,
            "schema": {
              "description": "The starting timestamp in ISO8601 format (inclusive)",
              "examples": [
                "2023-02-01 00:00:00Z"
              ],
              "format": "date-time",
              "title": "Start Time",
              "type": "string"
            }
          },
          {
            "description": "The ending timestamp in ISO8601 format (exclusive)",
            "in": "query",
            "name": "end_time",
            "required": true,
            "schema": {
              "description": "The ending timestamp in ISO8601 format (exclusive)",
              "examples": [
                "2023-02-03 00:00:00Z"
              ],
              "format": "date-time",
              "title": "End Time",
              "type": "string"
            }
          },
          {
            "description": "The sample rate in seconds.",
            "examples": {
              "example1": {
                "summary": "fifteen minutes",
                "value": 900
              },
              "example2": {
                "summary": "one hour",
                "value": 3600
              }
            },
            "in": "query",
            "name": "sample_rate",
            "required": false,
            "schema": {
              "default": 900,
              "description": "The sample rate in seconds.",
              "title": "Sample Rate",
              "type": "integer"
            }
          },
          {
            "description": "The number of seconds in the past to look back for a sample.",
            "examples": {
              "example1": {
                "summary": "four hours",
                "value": 14400
              }
            },
            "in": "query",
            "name": "look_back",
            "required": false,
            "schema": {
              "default": 14400,
              "description": "The number of seconds in the past to look back for a sample.",
              "title": "Look Back",
              "type": "integer"
            }
          },
          {
            "description": "When specified, subsequent samples that are fewer than this many meters away will not be included.",
            "examples": {
              "sample1": {
                "summary": "50 meters",
                "value": 50
              }
            },
            "in": "query",
            "name": "change_meters",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ],
              "description": "When specified, subsequent samples that are fewer than this many meters away will not be included.",
              "title": "Change Meters"
            }
          },
          {
            "description": "When true, Fulcra will attempt to reverse geocode the locations and include the location details in the results.",
            "in": "query",
            "name": "reverse_geocode",
            "required": false,
            "schema": {
              "default": false,
              "description": "When true, Fulcra will attempt to reverse geocode the locations and include the location details in the results.",
              "examples": [
                "false"
              ],
              "title": "Reverse Geocode",
              "type": "boolean"
            }
          },
          {
            "description": "A set of sources to use location samples from.",
            "examples": {
              "sample1": {
                "summary": "ios",
                "value": [
                  "ios"
                ]
              }
            },
            "in": "query",
            "name": "location_sources",
            "required": false,
            "schema": {
              "default": [
                "ios",
                "google_maps"
              ],
              "description": "A set of sources to use location samples from.",
              "items": {
                "$ref": "#/components/schemas/LocationSampleSource"
              },
              "title": "Location Sources",
              "type": "array"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Retrieve location for a user as a time series.",
        "tags": [
          "data"
        ]
      }
    },
    "/data/v0/{fulcra_userid}/location_updates": {
      "get": {
        "description": "Retrieve the location update samples for the specified user\nduring the specified period of time.",
        "operationId": "get_location_updates_data_v0__fulcra_userid__location_updates_get",
        "parameters": [
          {
            "in": "path",
            "name": "fulcra_userid",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Fulcra Userid",
              "type": "string"
            }
          },
          {
            "description": "The starting timestamp in ISO 8601 format (inclusive)",
            "in": "query",
            "name": "start_time",
            "required": true,
            "schema": {
              "description": "The starting timestamp in ISO 8601 format (inclusive)",
              "examples": [
                "2023-02-01 00:00:00Z"
              ],
              "format": "date-time",
              "title": "Start Time",
              "type": "string"
            }
          },
          {
            "description": "The ending timestamp in ISO 8601 format (exclusive)",
            "in": "query",
            "name": "end_time",
            "required": true,
            "schema": {
              "description": "The ending timestamp in ISO 8601 format (exclusive)",
              "examples": [
                "2023-02-03 00:00:00Z"
              ],
              "format": "date-time",
              "title": "End Time",
              "type": "string"
            }
          },
          {
            "description": "A set of sources to use location samples from.",
            "examples": {
              "sample1": {
                "summary": "ios",
                "value": [
                  "ios"
                ]
              }
            },
            "in": "query",
            "name": "location_sources",
            "required": false,
            "schema": {
              "default": [
                "ios",
                "google_maps"
              ],
              "description": "A set of sources to use location samples from.",
              "items": {
                "$ref": "#/components/schemas/LocationSampleSource"
              },
              "title": "Location Sources",
              "type": "array"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Return geolocation update samples for a user",
        "tags": [
          "data",
          "location"
        ]
      }
    },
    "/data/v0/{fulcra_userid}/metric_samples": {
      "get": {
        "description": "Retrieve the raw samples related to the given metric that occurred for the\nuser during the specified period of time.\n\nIn cases where samples cover ranges and not points in time, a sample will\nbe returned if any part of its range intersects with the requested range.\n\nAs an example, if you have `start_date` as 14:00 and `end_date` at 15:00,\nand there is a sample that covers 13:30-14:30, it will be included.",
        "operationId": "get_metric_samples_data_v0__fulcra_userid__metric_samples_get",
        "parameters": [
          {
            "in": "path",
            "name": "fulcra_userid",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Fulcra Userid",
              "type": "string"
            }
          },
          {
            "description": "The starting timestamp in ISO 8601 format (inclusive)",
            "in": "query",
            "name": "start_time",
            "required": true,
            "schema": {
              "description": "The starting timestamp in ISO 8601 format (inclusive)",
              "examples": [
                "2023-02-01 00:00:00Z"
              ],
              "format": "date-time",
              "title": "Start Time",
              "type": "string"
            }
          },
          {
            "description": "The ending timestamp in ISO 8601 format (exclusive)",
            "in": "query",
            "name": "end_time",
            "required": true,
            "schema": {
              "description": "The ending timestamp in ISO 8601 format (exclusive)",
              "examples": [
                "2023-02-03 00:00:00Z"
              ],
              "format": "date-time",
              "title": "End Time",
              "type": "string"
            }
          },
          {
            "description": "The metric to retrieve samples for.",
            "in": "query",
            "name": "metric",
            "required": true,
            "schema": {
              "description": "The metric to retrieve samples for.",
              "examples": [
                "HeartRate"
              ],
              "title": "Metric",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Return raw metric samples from a user's data",
        "tags": [
          "data"
        ]
      }
    },
    "/data/v0/{fulcra_userid}/metric_time_series": {
      "get": {
        "description": "Retrieve a time-series dataframe containing one metric.",
        "operationId": "user_get_metric_time_series_data_v0__fulcra_userid__metric_time_series_get",
        "parameters": [
          {
            "in": "path",
            "name": "fulcra_userid",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Fulcra Userid",
              "type": "string"
            }
          },
          {
            "description": "The starting timestamp in ISO8601 format (inclusive)",
            "in": "query",
            "name": "start_time",
            "required": true,
            "schema": {
              "description": "The starting timestamp in ISO8601 format (inclusive)",
              "examples": [
                "2023-02-01 00:00:00Z"
              ],
              "format": "date-time",
              "title": "Start Time",
              "type": "string"
            }
          },
          {
            "description": "The ending timestamp in ISO8601 format (exclusive)",
            "in": "query",
            "name": "end_time",
            "required": true,
            "schema": {
              "description": "The ending timestamp in ISO8601 format (exclusive)",
              "examples": [
                "2023-02-03 00:00:00Z"
              ],
              "format": "date-time",
              "title": "End Time",
              "type": "string"
            }
          },
          {
            "description": "The metric to retrieve data for.",
            "in": "query",
            "name": "metric",
            "required": true,
            "schema": {
              "description": "The metric to retrieve data for.",
              "examples": [
                "HeartRate"
              ],
              "title": "Metric",
              "type": "string"
            }
          },
          {
            "description": "The output format to generate.",
            "examples": {
              "example1": {
                "summary": "JSON table (schema / data separation)",
                "value": "jstable"
              },
              "example2": {
                "summary": "JSON columns (dict of columns)",
                "value": "jscolumns"
              },
              "example3": {
                "summary": "Apache Arrow / Feather format",
                "value": "arrow"
              },
              "example4": {
                "summary": "Parquet",
                "value": "parquet"
              },
              "example5": {
                "summary": "Apache Arrow / Feather uncompressed",
                "value": "arrowraw"
              },
              "example6": {
                "summary": "CSV",
                "value": "csv"
              },
              "example7": {
                "summary": "CSV (quote everything)",
                "value": "quotecsv"
              }
            },
            "in": "query",
            "name": "output",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OutputMethod",
              "description": "The output format to generate."
            }
          },
          {
            "description": "The sample rate in seconds or in the polars string language (see https://docs.pola.rs/api/python/dev/reference/expressions/api/polars.Expr.dt.truncate.html).",
            "examples": {
              "example1": {
                "summary": "one second",
                "value": 1
              },
              "example2": {
                "summary": "one hour",
                "value": 3600
              },
              "example3": {
                "summary": "one calendar day",
                "value": "1d"
              }
            },
            "in": "query",
            "name": "samprate",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "string"
                }
              ],
              "default": 1,
              "description": "The sample rate in seconds or in the polars string language (see https://docs.pola.rs/api/python/dev/reference/expressions/api/polars.Expr.dt.truncate.html).",
              "title": "Samprate"
            }
          },
          {
            "description": "Set to 1 to replace all unavailable values with 0.",
            "in": "query",
            "name": "replace_nulls",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "default": 0,
              "description": "Set to 1 to replace all unavailable values with 0.",
              "examples": [
                "1"
              ],
              "title": "Replace Nulls"
            }
          },
          {
            "description": "Additional statistics to calculate for each time window.",
            "examples": {
              "example1": {
                "summary": "The maximum value for each time window.",
                "value": "max"
              },
              "example2": {
                "summary": "The minimum value for each time window.",
                "value": "min"
              },
              "example3": {
                "summary": "The delta between the maximum and minimum value for each time window.",
                "value": "delta"
              },
              "example4": {
                "summary": "The mean value for each time window.",
                "value": "mean"
              },
              "example5": {
                "summary": "The list of unique values for each time window.",
                "value": "uniques"
              },
              "example6": {
                "summary": "The list of all values for each time window.",
                "value": "allpoints"
              },
              "example7": {
                "summary": "The rolling mean value for each time window.  This mean is calculated relative to the beginning of the requested sample.",
                "value": "rollingmean"
              }
            },
            "in": "query",
            "name": "calculations",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "items": {
                    "$ref": "#/components/schemas/TimeSeriesCalculation"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Additional statistics to calculate for each time window.",
              "title": "Calculations"
            }
          },
          {
            "description": "When set to 1, all null samples are removed.",
            "examples": {
              "example1": {
                "summary": "nulls removed",
                "value": 1
              },
              "example2": {
                "summary": "nulls included",
                "value": 0
              }
            },
            "in": "query",
            "name": "drop_nulls",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "null"
                }
              ],
              "default": 0,
              "description": "When set to 1, all null samples are removed.",
              "title": "Drop Nulls"
            }
          },
          {
            "description": "IANA time zone to return results in",
            "in": "query",
            "name": "tz",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/TimeZone"
                },
                {
                  "type": "null"
                }
              ],
              "description": "IANA time zone to return results in",
              "title": "Tz"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Retrieve a normalized time series",
        "tags": [
          "data"
        ]
      }
    },
    "/data/v0/{fulcra_userid}/sleep_agg": {
      "get": {
        "description": "Process raw sleep data samples aggregated sleep stage durations per period.",
        "operationId": "get_sleep_agg_data_v0__fulcra_userid__sleep_agg_get",
        "parameters": [
          {
            "in": "path",
            "name": "fulcra_userid",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Fulcra Userid",
              "type": "string"
            }
          },
          {
            "description": "The starting timestamp in ISO8601 format (inclusive)",
            "examples": {
              "sample1": {
                "summary": "November 15, 2024 at midnight UTC",
                "value": "2024-11-15 00:00:00Z"
              }
            },
            "in": "query",
            "name": "start_time",
            "required": true,
            "schema": {
              "description": "The starting timestamp in ISO8601 format (inclusive)",
              "examples": [
                "2024-11-15 00:00:00Z"
              ],
              "format": "date-time",
              "title": "Start Time",
              "type": "string"
            }
          },
          {
            "description": "The ending timestamp in ISO8601 format (exclusive)",
            "examples": {
              "sample1": {
                "summary": "November 16, 2024 at midnight UTC",
                "value": "2024-11-16 00:00:00Z"
              }
            },
            "in": "query",
            "name": "end_time",
            "required": true,
            "schema": {
              "description": "The ending timestamp in ISO8601 format (exclusive)",
              "examples": [
                "2024-11-16 00:00:00Z"
              ],
              "format": "date-time",
              "title": "End Time",
              "type": "string"
            }
          },
          {
            "description": "The output format to generate.",
            "examples": {
              "example1": {
                "summary": "JSON table (schema / data separation)",
                "value": "jstable"
              },
              "example2": {
                "summary": "JSON columns (dict of columns)",
                "value": "jscolumns"
              },
              "example3": {
                "summary": "Apache Arrow / Feather format",
                "value": "arrow"
              },
              "example4": {
                "summary": "Parquet",
                "value": "parquet"
              },
              "example5": {
                "summary": "Apache Arrow / Feather uncompressed",
                "value": "arrowraw"
              },
              "example6": {
                "summary": "CSV",
                "value": "csv"
              },
              "example7": {
                "summary": "CSV (quote everything)",
                "value": "quotecsv"
              }
            },
            "in": "query",
            "name": "output",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OutputMethod",
              "description": "The output format to generate."
            }
          },
          {
            "description": "Minimum time interval separating distinct cycles.",
            "in": "query",
            "name": "cycle_gap",
            "required": false,
            "schema": {
              "default": "PT2H",
              "description": "Minimum time interval separating distinct cycles.",
              "format": "duration",
              "title": "Cycle Gap",
              "type": "string"
            }
          },
          {
            "description": "Sleep stages to include. Defaults to all stages.",
            "in": "query",
            "name": "stages",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "items": {
                    "type": "integer"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Sleep stages to include. Defaults to all stages.",
              "title": "Stages"
            }
          },
          {
            "description": "Sleep stages to consider as gaps in sleep cycles.",
            "in": "query",
            "name": "gap_stages",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "items": {
                    "type": "integer"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Sleep stages to consider as gaps in sleep cycles.",
              "title": "Gap Stages"
            }
          },
          {
            "description": "Whether to clip the data to the requested date range. This is always done when requesting data for a user other than the authenticated user.",
            "in": "query",
            "name": "clip_to_range",
            "required": false,
            "schema": {
              "default": true,
              "description": "Whether to clip the data to the requested date range. This is always done when requesting data for a user other than the authenticated user.",
              "title": "Clip To Range",
              "type": "boolean"
            }
          },
          {
            "description": "Whether to use the cycle start or cycle end to assign cycles to periods, or to split sleep stage intervals at period boundries.",
            "in": "query",
            "name": "mode",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/Mode",
              "default": "end",
              "description": "Whether to use the cycle start or cycle end to assign cycles to periods, or to split sleep stage intervals at period boundries."
            }
          },
          {
            "description": "The period start and interval represented with the polars string language (see https://docs.pola.rs/api/python/dev/reference/expressions/api/polars.Expr.dt.truncate.html).",
            "in": "query",
            "name": "period",
            "required": false,
            "schema": {
              "default": "1d",
              "description": "The period start and interval represented with the polars string language (see https://docs.pola.rs/api/python/dev/reference/expressions/api/polars.Expr.dt.truncate.html).",
              "title": "Period",
              "type": "string"
            }
          },
          {
            "description": "Aggregations to return.",
            "in": "query",
            "name": "agg_functions",
            "required": false,
            "schema": {
              "default": [
                "sum"
              ],
              "description": "Aggregations to return.",
              "items": {
                "$ref": "#/components/schemas/AggregateFunction"
              },
              "title": "Agg Functions",
              "type": "array"
            }
          },
          {
            "description": "IANA time zone to return results in",
            "in": "query",
            "name": "tz",
            "required": false,
            "schema": {
              "default": "UTC",
              "description": "IANA time zone to return results in",
              "title": "Tz",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Return sleep cycles aggregated by a specified period.",
        "tags": [
          "data",
          "sleep"
        ]
      }
    },
    "/data/v0/{fulcra_userid}/sleep_cycles": {
      "get": {
        "description": "Process raw sleep data samples into sleep cycles and assign\nby finding gaps in the sleep sample data within a specified time interval.",
        "operationId": "get_sleep_cycles_data_v0__fulcra_userid__sleep_cycles_get",
        "parameters": [
          {
            "in": "path",
            "name": "fulcra_userid",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Fulcra Userid",
              "type": "string"
            }
          },
          {
            "description": "The starting timestamp in ISO8601 format (inclusive)",
            "examples": {
              "sample1": {
                "summary": "November 15, 2024 at midnight UTC",
                "value": "2024-11-15 00:00:00Z"
              }
            },
            "in": "query",
            "name": "start_time",
            "required": true,
            "schema": {
              "description": "The starting timestamp in ISO8601 format (inclusive)",
              "examples": [
                "2024-11-15 00:00:00Z"
              ],
              "format": "date-time",
              "title": "Start Time",
              "type": "string"
            }
          },
          {
            "description": "The ending timestamp in ISO8601 format (exclusive)",
            "examples": {
              "sample1": {
                "summary": "November 16, 2024 at midnight UTC",
                "value": "2024-11-16 00:00:00Z"
              }
            },
            "in": "query",
            "name": "end_time",
            "required": true,
            "schema": {
              "description": "The ending timestamp in ISO8601 format (exclusive)",
              "examples": [
                "2024-11-16 00:00:00Z"
              ],
              "format": "date-time",
              "title": "End Time",
              "type": "string"
            }
          },
          {
            "description": "The output format to generate.",
            "examples": {
              "example1": {
                "summary": "JSON table (schema / data separation)",
                "value": "jstable"
              },
              "example2": {
                "summary": "JSON columns (dict of columns)",
                "value": "jscolumns"
              },
              "example3": {
                "summary": "Apache Arrow / Feather format",
                "value": "arrow"
              },
              "example4": {
                "summary": "Parquet",
                "value": "parquet"
              },
              "example5": {
                "summary": "Apache Arrow / Feather uncompressed",
                "value": "arrowraw"
              },
              "example6": {
                "summary": "CSV",
                "value": "csv"
              },
              "example7": {
                "summary": "CSV (quote everything)",
                "value": "quotecsv"
              }
            },
            "in": "query",
            "name": "output",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OutputMethod",
              "description": "The output format to generate."
            }
          },
          {
            "description": "Minimum time interval separating distinct cycles.",
            "in": "query",
            "name": "cycle_gap",
            "required": false,
            "schema": {
              "default": "PT2H",
              "description": "Minimum time interval separating distinct cycles.",
              "format": "duration",
              "title": "Cycle Gap",
              "type": "string"
            }
          },
          {
            "description": "Sleep stages to include. Defaults to all stages.",
            "in": "query",
            "name": "stages",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "items": {
                    "type": "integer"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Sleep stages to include. Defaults to all stages.",
              "title": "Stages"
            }
          },
          {
            "description": "Sleep stages to consider as gaps in sleep cycles.",
            "in": "query",
            "name": "gap_stages",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "items": {
                    "type": "integer"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Sleep stages to consider as gaps in sleep cycles.",
              "title": "Gap Stages"
            }
          },
          {
            "description": "Whether to clip the data to the requested date range. This is always done when requesting data for a user other than the authenticated user.",
            "in": "query",
            "name": "clip_to_range",
            "required": false,
            "schema": {
              "default": true,
              "description": "Whether to clip the data to the requested date range. This is always done when requesting data for a user other than the authenticated user.",
              "title": "Clip To Range",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Return sleep cycles summarized from sleep stages",
        "tags": [
          "data",
          "sleep"
        ]
      }
    },
    "/data/v0/{fulcra_userid}/sleep_cycles_extended": {
      "get": {
        "description": "Extended version of sleep_cycles endpoint for experimentation.\nAdds metric time series data (heart rate, respiratory rate, etc.) to each sleep cycle.",
        "operationId": "get_sleep_cycles_extended_data_v0__fulcra_userid__sleep_cycles_extended_get",
        "parameters": [
          {
            "in": "path",
            "name": "fulcra_userid",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Fulcra Userid",
              "type": "string"
            }
          },
          {
            "description": "The starting timestamp in ISO8601 format (inclusive)",
            "examples": {
              "sample1": {
                "summary": "November 15, 2024 at midnight UTC",
                "value": "2024-11-15 00:00:00Z"
              }
            },
            "in": "query",
            "name": "start_time",
            "required": true,
            "schema": {
              "description": "The starting timestamp in ISO8601 format (inclusive)",
              "examples": [
                "2024-11-15 00:00:00Z"
              ],
              "format": "date-time",
              "title": "Start Time",
              "type": "string"
            }
          },
          {
            "description": "The ending timestamp in ISO8601 format (exclusive)",
            "examples": {
              "sample1": {
                "summary": "November 16, 2024 at midnight UTC",
                "value": "2024-11-16 00:00:00Z"
              }
            },
            "in": "query",
            "name": "end_time",
            "required": true,
            "schema": {
              "description": "The ending timestamp in ISO8601 format (exclusive)",
              "examples": [
                "2024-11-16 00:00:00Z"
              ],
              "format": "date-time",
              "title": "End Time",
              "type": "string"
            }
          },
          {
            "description": "The output format to generate.",
            "examples": {
              "example1": {
                "summary": "JSON table (schema / data separation)",
                "value": "jstable"
              },
              "example2": {
                "summary": "JSON columns (dict of columns)",
                "value": "jscolumns"
              },
              "example3": {
                "summary": "Apache Arrow / Feather format",
                "value": "arrow"
              },
              "example4": {
                "summary": "Parquet",
                "value": "parquet"
              },
              "example5": {
                "summary": "Apache Arrow / Feather uncompressed",
                "value": "arrowraw"
              },
              "example6": {
                "summary": "CSV",
                "value": "csv"
              },
              "example7": {
                "summary": "CSV (quote everything)",
                "value": "quotecsv"
              }
            },
            "in": "query",
            "name": "output",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OutputMethod",
              "description": "The output format to generate."
            }
          },
          {
            "description": "Minimum time interval separating distinct cycles.",
            "in": "query",
            "name": "cycle_gap",
            "required": false,
            "schema": {
              "default": "PT2H",
              "description": "Minimum time interval separating distinct cycles.",
              "format": "duration",
              "title": "Cycle Gap",
              "type": "string"
            }
          },
          {
            "description": "Sleep stages to include. Defaults to all stages.",
            "in": "query",
            "name": "stages",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "items": {
                    "type": "integer"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Sleep stages to include. Defaults to all stages.",
              "title": "Stages"
            }
          },
          {
            "description": "Sleep stages to consider as gaps in sleep cycles.",
            "in": "query",
            "name": "gap_stages",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "items": {
                    "type": "integer"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Sleep stages to consider as gaps in sleep cycles.",
              "title": "Gap Stages"
            }
          },
          {
            "description": "Whether to clip the data to the requested date range. This is always done when requesting data for a user other than the authenticated user.",
            "in": "query",
            "name": "clip_to_range",
            "required": false,
            "schema": {
              "default": true,
              "description": "Whether to clip the data to the requested date range. This is always done when requesting data for a user other than the authenticated user.",
              "title": "Clip To Range",
              "type": "boolean"
            }
          },
          {
            "description": "Optional list of metrics to include as time series data (e.g., HeartRate, RespiratoryRate).",
            "in": "query",
            "name": "metrics",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Optional list of metrics to include as time series data (e.g., HeartRate, RespiratoryRate).",
              "examples": [
                "HeartRate",
                "RespiratoryRate"
              ],
              "title": "Metrics"
            }
          },
          {
            "description": "Statistics to calculate for each time window in metric time series.",
            "examples": {
              "example1": {
                "summary": "The maximum value for each time window.",
                "value": "max"
              },
              "example2": {
                "summary": "The minimum value for each time window.",
                "value": "min"
              },
              "example3": {
                "summary": "The mean value for each time window.",
                "value": "mean"
              },
              "example4": {
                "summary": "The list of all values for each time window.",
                "value": "allpoints"
              }
            },
            "in": "query",
            "name": "metric_calculations",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "items": {
                    "$ref": "#/components/schemas/TimeSeriesCalculation"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Statistics to calculate for each time window in metric time series.",
              "title": "Metric Calculations"
            }
          },
          {
            "description": "Number of seconds before each sleep cycle to include in metric time series data.",
            "in": "query",
            "name": "metric_seconds_before",
            "required": false,
            "schema": {
              "default": 0,
              "description": "Number of seconds before each sleep cycle to include in metric time series data.",
              "examples": [
                3600,
                7200
              ],
              "minimum": 0,
              "title": "Metric Seconds Before",
              "type": "number"
            }
          },
          {
            "description": "Number of seconds after each sleep cycle to include in metric time series data.",
            "in": "query",
            "name": "metric_seconds_after",
            "required": false,
            "schema": {
              "default": 0,
              "description": "Number of seconds after each sleep cycle to include in metric time series data.",
              "examples": [
                3600,
                7200
              ],
              "minimum": 0,
              "title": "Metric Seconds After",
              "type": "number"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Return sleep cycles with extended data (experimental)",
        "tags": [
          "data",
          "sleep"
        ]
      }
    },
    "/data/v0/{fulcra_userid}/sleep_stage_metadata": {
      "get": {
        "description": "Retrieve metadata for interpreting sleep stage data, such as stage names and depths. In future, this may include user-specific stage or device priorities as well.",
        "operationId": "get_sleep_stage_metadata",
        "parameters": [
          {
            "in": "path",
            "name": "fulcra_userid",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Fulcra Userid",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Return sleep stage metadata.",
        "tags": [
          "data",
          "sleep"
        ]
      }
    },
    "/data/v0/{fulcra_userid}/sleep_stages": {
      "get": {
        "description": "Process raw sleep data samples into non-conflicting sleep stages and assign\na cycle index by finding gaps in the sleep sample data within a specified time interval.\n\nIf more than one sleep data source is present, sleep stage is determined based\non the priority of the stage (in bed and unknown are deprioritized) and the\nstart time of the sample (latest takes precedence)",
        "operationId": "get_sleep_stages_data_v0__fulcra_userid__sleep_stages_get",
        "parameters": [
          {
            "in": "path",
            "name": "fulcra_userid",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Fulcra Userid",
              "type": "string"
            }
          },
          {
            "description": "The starting timestamp in ISO8601 format (inclusive)",
            "examples": {
              "sample1": {
                "summary": "November 15, 2024 at midnight UTC",
                "value": "2024-11-15 00:00:00Z"
              }
            },
            "in": "query",
            "name": "start_time",
            "required": true,
            "schema": {
              "description": "The starting timestamp in ISO8601 format (inclusive)",
              "examples": [
                "2024-11-15 00:00:00Z"
              ],
              "format": "date-time",
              "title": "Start Time",
              "type": "string"
            }
          },
          {
            "description": "The ending timestamp in ISO8601 format (exclusive)",
            "examples": {
              "sample1": {
                "summary": "November 16, 2024 at midnight UTC",
                "value": "2024-11-16 00:00:00Z"
              }
            },
            "in": "query",
            "name": "end_time",
            "required": true,
            "schema": {
              "description": "The ending timestamp in ISO8601 format (exclusive)",
              "examples": [
                "2024-11-16 00:00:00Z"
              ],
              "format": "date-time",
              "title": "End Time",
              "type": "string"
            }
          },
          {
            "description": "The output format to generate.",
            "examples": {
              "example1": {
                "summary": "JSON table (schema / data separation)",
                "value": "jstable"
              },
              "example2": {
                "summary": "JSON columns (dict of columns)",
                "value": "jscolumns"
              },
              "example3": {
                "summary": "Apache Arrow / Feather format",
                "value": "arrow"
              },
              "example4": {
                "summary": "Parquet",
                "value": "parquet"
              },
              "example5": {
                "summary": "Apache Arrow / Feather uncompressed",
                "value": "arrowraw"
              },
              "example6": {
                "summary": "CSV",
                "value": "csv"
              },
              "example7": {
                "summary": "CSV (quote everything)",
                "value": "quotecsv"
              }
            },
            "in": "query",
            "name": "output",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/OutputMethod",
              "description": "The output format to generate."
            }
          },
          {
            "description": "Minimum time interval separating distinct cycles.",
            "in": "query",
            "name": "cycle_gap",
            "required": false,
            "schema": {
              "default": "PT2H",
              "description": "Minimum time interval separating distinct cycles.",
              "format": "duration",
              "title": "Cycle Gap",
              "type": "string"
            }
          },
          {
            "description": "Sleep stages to include. Defaults to all stages.",
            "in": "query",
            "name": "stages",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "items": {
                    "type": "integer"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Sleep stages to include. Defaults to all stages.",
              "title": "Stages"
            }
          },
          {
            "description": "Sleep stages to consider as gaps in sleep cycles.",
            "in": "query",
            "name": "gap_stages",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "items": {
                    "type": "integer"
                  },
                  "type": "array"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Sleep stages to consider as gaps in sleep cycles.",
              "title": "Gap Stages"
            }
          },
          {
            "description": "Whether to merge overlapping stages based on priority and start time: stage 0 (in bed) has lower priority than other stages; stage 2 (unknown sleep stage) has lower priority than other stages except 0; then stages with later start times take precedece.",
            "in": "query",
            "name": "merge_overlapping",
            "required": false,
            "schema": {
              "default": true,
              "description": "Whether to merge overlapping stages based on priority and start time: stage 0 (in bed) has lower priority than other stages; stage 2 (unknown sleep stage) has lower priority than other stages except 0; then stages with later start times take precedece.",
              "title": "Merge Overlapping",
              "type": "boolean"
            }
          },
          {
            "description": "Whether to merge contiguous samples with the same sleep stage into one continues stage.",
            "in": "query",
            "name": "merge_contiguous",
            "required": false,
            "schema": {
              "default": true,
              "description": "Whether to merge contiguous samples with the same sleep stage into one continues stage.",
              "title": "Merge Contiguous",
              "type": "boolean"
            }
          },
          {
            "description": "Whether to clip the data to the requested date range. This is always done when requesting data for a user other than the authenticated user.",
            "in": "query",
            "name": "clip_to_range",
            "required": false,
            "schema": {
              "default": true,
              "description": "Whether to clip the data to the requested date range. This is always done when requesting data for a user other than the authenticated user.",
              "title": "Clip To Range",
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Return sleep stages derived from raw fulcra metric samples",
        "tags": [
          "data",
          "sleep"
        ]
      }
    },
    "/data/v1/catalog": {
      "get": {
        "operationId": "catalog_data_v1_catalog_get",
        "parameters": [
          {
            "in": "query",
            "name": "data_type",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Data Type"
            }
          },
          {
            "in": "query",
            "name": "category",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Category"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/fulcradatatypes__models__FulcraDataType"
                  },
                  "title": "Response Catalog Data V1 Catalog Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Catalog of Fulcra Data Types",
        "tags": [
          "data"
        ]
      }
    },
    "/data/v1/catalog/{data_type}/{api_version}": {
      "get": {
        "operationId": "catalog_get_data_type_data_v1_catalog__data_type___api_version__get",
        "parameters": [
          {
            "in": "path",
            "name": "data_type",
            "required": true,
            "schema": {
              "title": "Data Type",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "api_version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/FulcraAPIVersion"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Catalog Get Data Type Data V1 Catalog  Data Type   Api Version  Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Return metadata for a data type",
        "tags": [
          "data"
        ]
      }
    },
    "/data/v1/catalog/{data_type}/{api_version}/schema": {
      "get": {
        "operationId": "catalog_data_type_schema_data_v1_catalog__data_type___api_version__schema_get",
        "parameters": [
          {
            "in": "path",
            "name": "data_type",
            "required": true,
            "schema": {
              "title": "Data Type",
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "api_version",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/FulcraAPIVersion"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Return record JSON Schema for a data type",
        "tags": [
          "data"
        ]
      }
    },
    "/data/v1/updates": {
      "get": {
        "operationId": "get_updates_data_v1_updates_get",
        "parameters": [
          {
            "description": "The starting timestamp in ISO8601 format (inclusive)",
            "in": "query",
            "name": "start_time",
            "required": true,
            "schema": {
              "description": "The starting timestamp in ISO8601 format (inclusive)",
              "examples": [
                "2023-02-01 00:00:00Z"
              ],
              "format": "date-time",
              "title": "Start Time",
              "type": "string"
            }
          },
          {
            "description": "The ending timestamp ISO8601 format (exclusive)",
            "in": "query",
            "name": "end_time",
            "required": true,
            "schema": {
              "description": "The ending timestamp ISO8601 format (exclusive)",
              "examples": [
                "2023-02-03 00:00:00Z"
              ],
              "format": "date-time",
              "title": "End Time",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response Get Updates Data V1 Updates Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Available Data Updated For Time Range",
        "tags": [
          "data"
        ]
      }
    },
    "/data/v1alpha1/data_available": {
      "get": {
        "description": "List all available data for `fulcra_userid` (if not present, then use the\nauthenticated user's userid).\n\nThis does not include pool data.\n\nThe result will be a list of objects, keyed by data type.\n\nThis is a convenience method, not a replacement for `access_check()`.",
        "operationId": "list_data_available_data_v1alpha1_data_available_get",
        "parameters": [
          {
            "description": "The starting timestamp in ISO8601 format (inclusive)",
            "in": "query",
            "name": "start_time",
            "required": true,
            "schema": {
              "description": "The starting timestamp in ISO8601 format (inclusive)",
              "examples": [
                "2023-02-01 00:00:00Z"
              ],
              "format": "date-time",
              "title": "Start Time",
              "type": "string"
            }
          },
          {
            "description": "The ending timestamp ISO8601 format (exclusive)",
            "in": "query",
            "name": "end_time",
            "required": true,
            "schema": {
              "description": "The ending timestamp ISO8601 format (exclusive)",
              "examples": [
                "2023-02-03 00:00:00Z"
              ],
              "format": "date-time",
              "title": "End Time",
              "type": "string"
            }
          },
          {
            "description": "User ID of Fulcra User to return data for",
            "in": "query",
            "name": "fulcra_userid",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "User ID of Fulcra User to return data for",
              "examples": [
                "cee68121-ce1b-4f6d-94a5-325643cd21e8"
              ],
              "title": "Fulcra Userid"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Available Data For Time Range",
        "tags": [
          "data"
        ]
      }
    },
    "/data/v1alpha1/data_sources": {
      "get": {
        "description": "Return a list of a user's processed data sources",
        "operationId": "list_fulcra_data_sources_data_v1alpha1_data_sources_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/FulcraDataSource"
                  },
                  "title": "Response List Fulcra Data Sources Data V1Alpha1 Data Sources Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Fulcra Data Sources",
        "tags": [
          "data"
        ]
      }
    },
    "/data/v1alpha1/data_types": {
      "get": {
        "description": "Return a list of available Fulcra Data Types to query",
        "operationId": "list_fulcra_data_types_data_v1alpha1_data_types_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/dataservice__v1alpha1__datatypes__FulcraDataType"
                  },
                  "title": "Response List Fulcra Data Types Data V1Alpha1 Data Types Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "List Fulcra Data Types",
        "tags": [
          "data"
        ]
      }
    },
    "/data/v1alpha1/event/{data_type}": {
      "get": {
        "description": "Return records from a Fulcra Data Type",
        "operationId": "user_get_records_data_v1alpha1_event__data_type__get",
        "parameters": [
          {
            "in": "path",
            "name": "data_type",
            "required": true,
            "schema": {
              "title": "Data Type",
              "type": "string"
            }
          },
          {
            "description": "The starting timestamp in ISO8601 format (inclusive)",
            "in": "query",
            "name": "start_time",
            "required": true,
            "schema": {
              "description": "The starting timestamp in ISO8601 format (inclusive)",
              "examples": [
                "2023-02-01 00:00:00Z"
              ],
              "format": "date-time",
              "title": "Start Time",
              "type": "string"
            }
          },
          {
            "description": "The ending timestamp ISO8601 format (exclusive)",
            "in": "query",
            "name": "end_time",
            "required": true,
            "schema": {
              "description": "The ending timestamp ISO8601 format (exclusive)",
              "examples": [
                "2023-02-03 00:00:00Z"
              ],
              "format": "date-time",
              "title": "End Time",
              "type": "string"
            }
          },
          {
            "description": "Response format (json or csv)",
            "in": "query",
            "name": "format",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/ResponseFormat",
              "default": "json",
              "description": "Response format (json or csv)",
              "examples": [
                "json"
              ]
            }
          },
          {
            "description": "Sort Order",
            "in": "query",
            "name": "sort",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/SortOrder",
              "default": "asc",
              "description": "Sort Order",
              "examples": [
                "ASC"
              ]
            }
          },
          {
            "description": "User ID of Fulcra User to return data for",
            "in": "query",
            "name": "fulcra_userid",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "User ID of Fulcra User to return data for",
              "examples": [
                "cee68121-ce1b-4f6d-94a5-325643cd21e8"
              ],
              "title": "Fulcra Userid"
            }
          },
          {
            "description": "Pool ID to return data for",
            "in": "query",
            "name": "pool_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Pool ID to return data for",
              "examples": [
                "29388515-f15a-4edc-b19a-14630ab3f3ca"
              ],
              "title": "Pool Id"
            }
          },
          {
            "description": "Pool participant ID to return data for",
            "in": "query",
            "name": "participant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Pool participant ID to return data for",
              "examples": [
                "8b0228fd-21f8-4e75-a30c-758c8dfe833c"
              ],
              "title": "Participant Id"
            }
          },
          {
            "description": "Additional fields to filter by",
            "in": "query",
            "name": "filter",
            "required": false,
            "schema": {
              "default": [],
              "description": "Additional fields to filter by",
              "examples": [
                "source:com.fulcradynamics.ShdkLDk4",
                "tag:D7C76610-5341-4F01-89D8-12AE1A344717"
              ],
              "items": {
                "type": "string"
              },
              "title": "Filter",
              "type": "array"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Return records for a Fulcra Event",
        "tags": [
          "data"
        ]
      }
    },
    "/data/v1alpha1/event/{data_type}/agg/{resolution}": {
      "get": {
        "operationId": "user_get_event_agg_data_v1alpha1_event__data_type__agg__resolution__get",
        "parameters": [
          {
            "description": "Time granularity to aggregate by",
            "in": "path",
            "name": "resolution",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/AggregateResolution",
              "description": "Time granularity to aggregate by",
              "examples": [
                "15m",
                "60m",
                "day"
              ]
            }
          },
          {
            "in": "path",
            "name": "data_type",
            "required": true,
            "schema": {
              "title": "Data Type",
              "type": "string"
            }
          },
          {
            "description": "The starting timestamp in ISO8601 format (inclusive)",
            "in": "query",
            "name": "start_time",
            "required": true,
            "schema": {
              "description": "The starting timestamp in ISO8601 format (inclusive)",
              "examples": [
                "2023-02-01 00:00:00Z"
              ],
              "format": "date-time",
              "title": "Start Time",
              "type": "string"
            }
          },
          {
            "description": "The ending timestamp ISO8601 format (exclusive)",
            "in": "query",
            "name": "end_time",
            "required": true,
            "schema": {
              "description": "The ending timestamp ISO8601 format (exclusive)",
              "examples": [
                "2023-02-03 00:00:00Z"
              ],
              "format": "date-time",
              "title": "End Time",
              "type": "string"
            }
          },
          {
            "description": "IANA time zone to aggregate by",
            "in": "query",
            "name": "time_zone",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/TimeZone",
              "default": "UTC",
              "description": "IANA time zone to aggregate by",
              "examples": [
                "America/New_York"
              ]
            }
          },
          {
            "description": "Response format (json or csv)",
            "in": "query",
            "name": "format",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/ResponseFormat",
              "default": "json",
              "description": "Response format (json or csv)",
              "examples": [
                "json"
              ]
            }
          },
          {
            "description": "Sort Order",
            "in": "query",
            "name": "sort",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/SortOrder",
              "default": "asc",
              "description": "Sort Order",
              "examples": [
                "ASC"
              ]
            }
          },
          {
            "description": "User ID of Fulcra User to return data for",
            "in": "query",
            "name": "fulcra_userid",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "User ID of Fulcra User to return data for",
              "examples": [
                "cee68121-ce1b-4f6d-94a5-325643cd21e8"
              ],
              "title": "Fulcra Userid"
            }
          },
          {
            "description": "Pool ID to return data for",
            "in": "query",
            "name": "pool_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Pool ID to return data for",
              "examples": [
                "29388515-f15a-4edc-b19a-14630ab3f3ca"
              ],
              "title": "Pool Id"
            }
          },
          {
            "description": "Pool participant ID to return data for",
            "in": "query",
            "name": "participant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Pool participant ID to return data for",
              "examples": [
                "8b0228fd-21f8-4e75-a30c-758c8dfe833c"
              ],
              "title": "Participant Id"
            }
          },
          {
            "description": "Additional fields to filter by",
            "in": "query",
            "name": "filter",
            "required": false,
            "schema": {
              "default": [],
              "description": "Additional fields to filter by",
              "examples": [
                "source:com.fulcradynamics.ShdkLDk4",
                "tag:D7C76610-5341-4F01-89D8-12AE1A344717"
              ],
              "items": {
                "type": "string"
              },
              "title": "Filter",
              "type": "array"
            }
          },
          {
            "description": "Additional fields to group by",
            "in": "query",
            "name": "group",
            "required": false,
            "schema": {
              "default": [],
              "description": "Additional fields to group by",
              "examples": [
                "source",
                "tag"
              ],
              "items": {
                "type": "string"
              },
              "title": "Group",
              "type": "array"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Return aggregated data for a Fulcra Metric",
        "tags": [
          "data"
        ]
      }
    },
    "/data/v1alpha1/insight": {
      "get": {
        "operationId": "get_sleep_insights_data_v1alpha1_insight_get",
        "parameters": [
          {
            "description": "The timestamp in ISO8601 format (inclusive)",
            "in": "query",
            "name": "timestamp",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "date-time",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "The timestamp in ISO8601 format (inclusive)",
              "examples": [
                "2023-02-01 00:00:00Z"
              ],
              "title": "Timestamp"
            }
          },
          {
            "description": "Insights report version",
            "in": "query",
            "name": "version",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/InsightReportVersion",
              "default": "v0",
              "description": "Insights report version"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Return insights data",
        "tags": [
          "data"
        ]
      }
    },
    "/data/v1alpha1/metric/{data_type}": {
      "get": {
        "operationId": "user_get_metric_data_v1alpha1_metric__data_type__get",
        "parameters": [
          {
            "in": "path",
            "name": "data_type",
            "required": true,
            "schema": {
              "title": "Data Type",
              "type": "string"
            }
          },
          {
            "description": "The starting timestamp in ISO8601 format (inclusive)",
            "in": "query",
            "name": "start_time",
            "required": true,
            "schema": {
              "description": "The starting timestamp in ISO8601 format (inclusive)",
              "examples": [
                "2023-02-01 00:00:00Z"
              ],
              "format": "date-time",
              "title": "Start Time",
              "type": "string"
            }
          },
          {
            "description": "The ending timestamp ISO8601 format (exclusive)",
            "in": "query",
            "name": "end_time",
            "required": true,
            "schema": {
              "description": "The ending timestamp ISO8601 format (exclusive)",
              "examples": [
                "2023-02-03 00:00:00Z"
              ],
              "format": "date-time",
              "title": "End Time",
              "type": "string"
            }
          },
          {
            "description": "Response format (json or csv)",
            "in": "query",
            "name": "format",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/ResponseFormat",
              "default": "json",
              "description": "Response format (json or csv)",
              "examples": [
                "json"
              ]
            }
          },
          {
            "description": "Sort Order",
            "in": "query",
            "name": "sort",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/SortOrder",
              "default": "asc",
              "description": "Sort Order",
              "examples": [
                "ASC"
              ]
            }
          },
          {
            "description": "User ID of Fulcra User to return data for",
            "in": "query",
            "name": "fulcra_userid",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "User ID of Fulcra User to return data for",
              "examples": [
                "cee68121-ce1b-4f6d-94a5-325643cd21e8"
              ],
              "title": "Fulcra Userid"
            }
          },
          {
            "description": "Pool ID to return data for",
            "in": "query",
            "name": "pool_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Pool ID to return data for",
              "examples": [
                "29388515-f15a-4edc-b19a-14630ab3f3ca"
              ],
              "title": "Pool Id"
            }
          },
          {
            "description": "Pool participant ID to return data for",
            "in": "query",
            "name": "participant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Pool participant ID to return data for",
              "examples": [
                "8b0228fd-21f8-4e75-a30c-758c8dfe833c"
              ],
              "title": "Participant Id"
            }
          },
          {
            "description": "Additional fields to filter by",
            "in": "query",
            "name": "filter",
            "required": false,
            "schema": {
              "default": [],
              "description": "Additional fields to filter by",
              "examples": [
                "source:com.fulcradynamics.ShdkLDk4",
                "tag:D7C76610-5341-4F01-89D8-12AE1A344717"
              ],
              "items": {
                "type": "string"
              },
              "title": "Filter",
              "type": "array"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Return raw samples of a Fulcra Metric",
        "tags": [
          "data"
        ]
      }
    },
    "/data/v1alpha1/metric/{data_type}/agg/{resolution}": {
      "get": {
        "operationId": "user_get_metric_agg_data_v1alpha1_metric__data_type__agg__resolution__get",
        "parameters": [
          {
            "description": "Time granularity to aggregate by",
            "in": "path",
            "name": "resolution",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/AggregateResolution",
              "description": "Time granularity to aggregate by",
              "examples": [
                "15m",
                "60m",
                "day"
              ]
            }
          },
          {
            "in": "path",
            "name": "data_type",
            "required": true,
            "schema": {
              "title": "Data Type",
              "type": "string"
            }
          },
          {
            "description": "Aggregate function",
            "in": "query",
            "name": "function",
            "required": true,
            "schema": {
              "description": "Aggregate function",
              "examples": [
                "sum",
                "avg"
              ],
              "items": {
                "$ref": "#/components/schemas/AggregateFunction"
              },
              "title": "Function",
              "type": "array"
            }
          },
          {
            "description": "The starting timestamp in ISO8601 format (inclusive)",
            "in": "query",
            "name": "start_time",
            "required": true,
            "schema": {
              "description": "The starting timestamp in ISO8601 format (inclusive)",
              "examples": [
                "2023-02-01 00:00:00Z"
              ],
              "format": "date-time",
              "title": "Start Time",
              "type": "string"
            }
          },
          {
            "description": "The ending timestamp ISO8601 format (exclusive)",
            "in": "query",
            "name": "end_time",
            "required": true,
            "schema": {
              "description": "The ending timestamp ISO8601 format (exclusive)",
              "examples": [
                "2023-02-03 00:00:00Z"
              ],
              "format": "date-time",
              "title": "End Time",
              "type": "string"
            }
          },
          {
            "description": "IANA time zone to aggregate by",
            "in": "query",
            "name": "time_zone",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/TimeZone",
              "default": "UTC",
              "description": "IANA time zone to aggregate by",
              "examples": [
                "America/New_York"
              ]
            }
          },
          {
            "description": "Response format (json or csv)",
            "in": "query",
            "name": "format",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/ResponseFormat",
              "default": "json",
              "description": "Response format (json or csv)",
              "examples": [
                "json"
              ]
            }
          },
          {
            "description": "Sort Order",
            "in": "query",
            "name": "sort",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/SortOrder",
              "default": "asc",
              "description": "Sort Order",
              "examples": [
                "ASC"
              ]
            }
          },
          {
            "description": "User ID of Fulcra User to return data for",
            "in": "query",
            "name": "fulcra_userid",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "User ID of Fulcra User to return data for",
              "examples": [
                "cee68121-ce1b-4f6d-94a5-325643cd21e8"
              ],
              "title": "Fulcra Userid"
            }
          },
          {
            "description": "Pool ID to return data for",
            "in": "query",
            "name": "pool_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Pool ID to return data for",
              "examples": [
                "29388515-f15a-4edc-b19a-14630ab3f3ca"
              ],
              "title": "Pool Id"
            }
          },
          {
            "description": "Pool participant ID to return data for",
            "in": "query",
            "name": "participant_id",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "description": "Pool participant ID to return data for",
              "examples": [
                "8b0228fd-21f8-4e75-a30c-758c8dfe833c"
              ],
              "title": "Participant Id"
            }
          },
          {
            "description": "Additional fields to filter by",
            "in": "query",
            "name": "filter",
            "required": false,
            "schema": {
              "default": [],
              "description": "Additional fields to filter by",
              "examples": [
                "source:com.fulcradynamics.ShdkLDk4",
                "tag:D7C76610-5341-4F01-89D8-12AE1A344717"
              ],
              "items": {
                "type": "string"
              },
              "title": "Filter",
              "type": "array"
            }
          },
          {
            "description": "Additional fields to group by",
            "in": "query",
            "name": "group",
            "required": false,
            "schema": {
              "default": [],
              "description": "Additional fields to group by",
              "examples": [
                "source",
                "tag"
              ],
              "items": {
                "type": "string"
              },
              "title": "Group",
              "type": "array"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Return aggregated data for a Fulcra Metric",
        "tags": [
          "data"
        ]
      }
    },
    "/ingest/v1/record": {
      "post": {
        "deprecated": true,
        "description": "ingest a fulcra data type record",
        "operationId": "record_single_type_ingest_v1_record_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DataRecordV1"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Ingest a wrapped record for a Fulcra Data Type",
        "tags": [
          "ingest"
        ]
      }
    },
    "/ingest/v1/record/{data_type}": {
      "post": {
        "description": "Ingest records for a Fulcra data type. Data types can be retrieved from the /data/v1/catalog endpoint. Record schema for a data type can be retrieved from the /data/v1/catalog/{data_type}/{api_version}/schema endpoint.",
        "operationId": "record_type_ingest_v1_record__data_type__post",
        "parameters": [
          {
            "in": "path",
            "name": "data_type",
            "required": true,
            "schema": {
              "title": "Data Type",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "api_version",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/FulcraAPIVersion"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Api Version"
            }
          },
          {
            "in": "header",
            "name": "content-length",
            "required": true,
            "schema": {
              "title": "Content-Length",
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            },
            "application/x-jsonl": {}
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UploadResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Ingest records for a Fulcra data type",
        "tags": [
          "ingest"
        ]
      }
    },
    "/input/v1/file": {
      "get": {
        "operationId": "input-v1-file-get-file-upload-inputs",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "path",
            "schema": {
              "default": "/",
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "name",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "state",
            "schema": {
              "default": [
                "created",
                "uploaded"
              ],
              "items": {
                "enum": [
                  "created",
                  "uploaded",
                  "archived",
                  "deleted"
                ],
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "include_archived",
            "schema": {
              "default": false,
              "deprecated": true,
              "type": "boolean"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "include_deleted",
            "schema": {
              "default": false,
              "deprecated": true,
              "type": "boolean"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "start_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "end_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListFileUploadResponseBody"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "summary": "Return a list of file upload inputs",
        "tags": [
          "files"
        ]
      },
      "post": {
        "operationId": "input-v1-file-create-file-upload-input",
        "parameters": [
          {
            "in": "header",
            "name": "origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateFileUploadRequestBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateFileUploadResponseBody"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "summary": "Create a file upload input",
        "tags": [
          "files"
        ]
      }
    },
    "/input/v1/file/recent_changes": {
      "get": {
        "operationId": "input-v1-file-get-recent-file-changes",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "start_time",
            "required": true,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "end_time",
            "required": true,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecentChangesResponseBody"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "summary": "Return a list of recent file changes",
        "tags": [
          "file uploads"
        ]
      }
    },
    "/input/v1/file/{input_id}": {
      "delete": {
        "operationId": "input-v1-file-delete-file-upload-input",
        "responses": {
          "204": {
            "description": "No Content"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "summary": "Delete a file upload input",
        "tags": [
          "files"
        ]
      },
      "get": {
        "operationId": "input-v1-file-get-file-upload-input",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FulcraFileUploadInput"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "summary": "Return a file upload input",
        "tags": [
          "files"
        ]
      }
    },
    "/input/v1/file/{input_id}/download": {
      "get": {
        "operationId": "input-v1-file-download-file-upload-input",
        "responses": {
          "200": {
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "summary": "Download a file upload input",
        "tags": [
          "files"
        ]
      }
    },
    "/input/v1/file/{input_id}/restore": {
      "post": {
        "operationId": "input-v1-file-restore-file-upload-input",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FulcraFileUploadInput"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "summary": "Restore an archived file upload input",
        "tags": [
          "files"
        ]
      }
    },
    "/input/v1/file_upload": {
      "get": {
        "deprecated": true,
        "operationId": "input-v1-file_upload-get-file-upload-inputs",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "path",
            "schema": {
              "default": "/",
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "name",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "state",
            "schema": {
              "default": [
                "created",
                "uploaded"
              ],
              "items": {
                "enum": [
                  "created",
                  "uploaded",
                  "archived",
                  "deleted"
                ],
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "include_archived",
            "schema": {
              "default": false,
              "deprecated": true,
              "type": "boolean"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "include_deleted",
            "schema": {
              "default": false,
              "deprecated": true,
              "type": "boolean"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "start_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "end_time",
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListFileUploadResponseBody"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "summary": "Return a list of file upload inputs",
        "tags": [
          "files"
        ]
      },
      "post": {
        "deprecated": true,
        "operationId": "input-v1-file_upload-create-file-upload-input",
        "parameters": [
          {
            "in": "header",
            "name": "origin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateFileUploadRequestBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateFileUploadResponseBody"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "summary": "Create a file upload input",
        "tags": [
          "files"
        ]
      }
    },
    "/input/v1/file_upload/recent_changes": {
      "get": {
        "deprecated": true,
        "operationId": "input-v1-file_upload-get-recent-file-changes",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "start_time",
            "required": true,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "end_time",
            "required": true,
            "schema": {
              "format": "date-time",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecentChangesResponseBody"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "summary": "Return a list of recent file changes",
        "tags": [
          "file uploads"
        ]
      }
    },
    "/input/v1/file_upload/{input_id}": {
      "delete": {
        "deprecated": true,
        "operationId": "input-v1-file_upload-delete-file-upload-input",
        "responses": {
          "204": {
            "description": "No Content"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "summary": "Delete a file upload input",
        "tags": [
          "files"
        ]
      },
      "get": {
        "deprecated": true,
        "operationId": "input-v1-file_upload-get-file-upload-input",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FulcraFileUploadInput"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "summary": "Return a file upload input",
        "tags": [
          "files"
        ]
      }
    },
    "/input/v1/file_upload/{input_id}/download": {
      "get": {
        "deprecated": true,
        "operationId": "input-v1-file_upload-download-file-upload-input",
        "responses": {
          "200": {
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "summary": "Download a file upload input",
        "tags": [
          "files"
        ]
      }
    },
    "/input/v1/file_upload/{input_id}/restore": {
      "post": {
        "deprecated": true,
        "operationId": "input-v1-file_upload-restore-file-upload-input",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FulcraFileUploadInput"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "summary": "Restore an archived file upload input",
        "tags": [
          "files"
        ]
      }
    },
    "/user/v1alpha1/annotation": {
      "get": {
        "description": "Return a list of the user's annotations",
        "operationId": "user_get_annotations_user_v1alpha1_annotation_get",
        "parameters": [
          {
            "in": "query",
            "name": "fulcra_userid",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Fulcra Userid"
            }
          },
          {
            "in": "query",
            "name": "annotation_type",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/AnnotationType"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Annotation Type"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/AnnotationRow"
                  },
                  "title": "Response User Get Annotations User V1Alpha1 Annotation Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get a list of annotations",
        "tags": [
          "annotations"
        ]
      },
      "post": {
        "description": "Create a new annotation",
        "operationId": "user_create_annotation_user_v1alpha1_annotation_post",
        "parameters": [
          {
            "in": "query",
            "name": "response_class",
            "required": false,
            "schema": {
              "title": "Response Class"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnnotationRoot"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create an annotation",
        "tags": [
          "annotations"
        ]
      }
    },
    "/user/v1alpha1/annotation/{annotation_id}": {
      "delete": {
        "description": "Sets the annotation status to deleted",
        "operationId": "user_delete_annotation_user_v1alpha1_annotation__annotation_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "annotation_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Annotation Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fulcra_userid",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Fulcra Userid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete an annotaion",
        "tags": [
          "annotations"
        ]
      },
      "get": {
        "description": "Return a specific annotation",
        "operationId": "user_get_annotation_user_v1alpha1_annotation__annotation_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "annotation_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Annotation Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fulcra_userid",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Fulcra Userid"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnnotationRow"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get an annotation",
        "tags": [
          "annotations"
        ]
      },
      "put": {
        "description": "Update an existing annotation",
        "operationId": "user_update_annotation_user_v1alpha1_annotation__annotation_id__put",
        "parameters": [
          {
            "in": "path",
            "name": "annotation_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Annotation Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fulcra_userid",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Fulcra Userid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnnotationRoot"
              }
            }
          },
          "required": true
        },
        "responses": {
          "307": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Update an annotation",
        "tags": [
          "annotations"
        ]
      }
    },
    "/user/v1alpha1/annotation/{annotation_id}/cancel_deletion": {
      "post": {
        "description": "Sets the annotation status to active",
        "operationId": "user_cancel_annotation_deletion_user_v1alpha1_annotation__annotation_id__cancel_deletion_post",
        "parameters": [
          {
            "in": "path",
            "name": "annotation_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Annotation Id",
              "type": "string"
            }
          },
          {
            "in": "query",
            "name": "fulcra_userid",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "format": "uuid",
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Fulcra Userid"
            }
          }
        ],
        "responses": {
          "307": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Restore a deleted annotation",
        "tags": [
          "annotations"
        ]
      }
    },
    "/user/v1alpha1/info": {
      "get": {
        "description": "Returns information for the authenticated Fulcra user including current preferences (time zone, calendars, etc).",
        "operationId": "get_user_info",
        "parameters": [
          {
            "in": "query",
            "name": "platform",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "title": "Platform"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/V1Alpha1UserResponse"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Return authenticated user information",
        "tags": [
          "user"
        ]
      }
    },
    "/user/v1alpha1/preferences": {
      "get": {
        "description": "Return the current preferences and settings for the authenticated Fulcra user",
        "operationId": "get_user_preferences",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FulcraUserPreferences"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Return current user preferences",
        "tags": [
          "user"
        ]
      },
      "post": {
        "description": "Set current preferences for the authenticated Fulcra user",
        "operationId": "set_user_preferences",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FulcraUserPreferences"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FulcraUserPreferences"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Set user preferences",
        "tags": [
          "user"
        ]
      }
    },
    "/user/v1alpha1/schema/annotation": {
      "get": {
        "description": "Return the annoation model schema in JSON schema format",
        "operationId": "user_get_annotation_schema_user_v1alpha1_schema_annotation_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response User Get Annotation Schema User V1Alpha1 Schema Annotation Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get the annotation model schema",
        "tags": [
          "annotations"
        ]
      }
    },
    "/user/v1alpha1/schema/measurement": {
      "get": {
        "description": "Return the measurement model schema in JSON schema format",
        "operationId": "user_get_measurement_schema_user_v1alpha1_schema_measurement_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": true,
                  "title": "Response User Get Measurement Schema User V1Alpha1 Schema Measurement Get",
                  "type": "object"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Get the measurement model schema",
        "tags": [
          "annotations"
        ]
      }
    },
    "/user/v1alpha1/tag": {
      "get": {
        "description": "Return a collection of a Fulcra User's configured tags",
        "operationId": "get_tags_user_v1alpha1_tag_get",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/FulcraTag"
                  },
                  "title": "Response Get Tags User V1Alpha1 Tag Get",
                  "type": "array"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Return a list of tags",
        "tags": [
          "tags"
        ]
      },
      "post": {
        "description": "Create a new tag for a Fulcra User",
        "operationId": "create_tag_user_v1alpha1_tag_post",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateFulcraTagRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "303": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Create a tag",
        "tags": [
          "tags"
        ]
      }
    },
    "/user/v1alpha1/tag/id/{tag_id}": {
      "delete": {
        "description": "Deletes a tag",
        "operationId": "delete_tag_user_v1alpha1_tag_id__tag_id__delete",
        "parameters": [
          {
            "in": "path",
            "name": "tag_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Tag Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Delete a tag",
        "tags": [
          "tags"
        ]
      },
      "get": {
        "description": "Returns information on a Fulcra User's configured tag by tag ID",
        "operationId": "get_tag_by_id_user_v1alpha1_tag_id__tag_id__get",
        "parameters": [
          {
            "in": "path",
            "name": "tag_id",
            "required": true,
            "schema": {
              "format": "uuid",
              "title": "Tag Id",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FulcraTag"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Return information on a tag by ID",
        "tags": [
          "tags"
        ]
      }
    },
    "/user/v1alpha1/tag/name/{tag_name}": {
      "get": {
        "description": "Returns information on a Fulcra User's configured tag by tag name",
        "operationId": "get_tag_by_name_user_v1alpha1_tag_name__tag_name__get",
        "parameters": [
          {
            "in": "path",
            "name": "tag_name",
            "required": true,
            "schema": {
              "title": "Tag Name",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FulcraTag"
                }
              }
            },
            "description": "Successful Response"
          },
          "422": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            },
            "description": "Validation Error"
          }
        },
        "summary": "Return information on a tag by name",
        "tags": [
          "tags"
        ]
      }
    }
  },
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "servers": [
    {
      "url": "https://api.fulcradynamics.com",
      "description": "Fulcra Life API"
    }
  ]
}