{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/getmyluna-app/json-schema/getmyluna-app-profile-update-request-schema.json",
  "title": "ProfileUpdateRequest",
  "description": "Any subset of fields; admin only.",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/getmyluna-app-openapi.json#/components/schemas/ProfileUpdateRequest",
  "properties": {
    "baby_name": {
      "anyOf": [
        {
          "maxLength": 80,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Baby Name"
    },
    "dob": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "YYYY-MM-DD, not in the future, within 0-5 years. Setting it clears `due_date`.",
      "title": "Dob"
    },
    "due_date": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "YYYY-MM-DD, up to 14 days ago to 10 months ahead. Only while there is no date of birth.",
      "title": "Due Date"
    },
    "gender": {
      "anyOf": [
        {
          "enum": [
            "girl",
            "boy",
            "female",
            "male",
            "other",
            "unknown",
            "prefer_not_to_say",
            ""
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Gender"
    },
    "family_name": {
      "anyOf": [
        {
          "maxLength": 120,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Family Name"
    },
    "timezone": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "IANA zone, e.g. `America/New_York`.",
      "title": "Timezone"
    },
    "region": {
      "anyOf": [
        {
          "enum": [
            "uk",
            "us",
            "za"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "`uk`, `us` or `za` (South Africa). Sets `units` to match unless `units` is given.",
      "title": "Region"
    },
    "units": {
      "anyOf": [
        {
          "enum": [
            "metric",
            "imperial"
          ],
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Units"
    }
  },
  "type": "object"
}