{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/deputy/main/json-schema/deputy-copy-request-copy-request-data-schema.json", "title": "CopyRequestCopyRequestData", "x-generated": "2026-10-14", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/deputy-v2-api-openapi.yml#/components/schemas/CopyRequestCopyRequestData", "type": "object", "properties": { "startDate": { "type": "string", "description": "Start date of the shifts to copy. Format: YYYY-MM-DD (e.g., \"2023-03-11\"). Required for pattern 1." }, "endDate": { "type": "string", "description": "End date of the shifts to copy (inclusive). Format: YYYY-MM-DD (e.g., \"2023-03-18\"). Required for pattern 1." }, "areas": { "type": "array", "items": { "type": "integer", "format": "int32" }, "description": "Array of area IDs to filter shifts for copying. If empty, all areas are included. Used for pattern 1." }, "targetDates": { "type": "array", "items": { "type": "string" }, "description": "Target dates to copy shifts to. Format: YYYY-MM-DD. Each date will receive copies of the source shifts.\nMutually exclusive with dayOffsets." }, "viewType": { "$ref": "#/$defs/modelViewType", "description": "View type that determines which shifts are included in the copy operation.\nRequired when using targetDates. Not required when using dayOffsets." }, "shiftIds": { "type": "array", "items": { "type": "integer", "format": "int32" }, "description": "Array of specific shift IDs to copy. Used for pattern 2. If provided, startDate, endDate, and areas are ignored." }, "dayOffsets": { "type": "array", "items": { "type": "integer", "format": "int32" }, "description": "Day offsets for copying shifts. Each value is the number of days to offset\nfrom source shift dates. Mutually exclusive with targetDates.\nWhen provided, viewType is not required." } }, "$defs": { "modelViewType": { "type": "string", "enum": [ "DAILY", "DAILY_EMP", "WEEKLY", "WEEKLY_EMPLOYEE", "FORTNIGHTLY", "FORTNIGHTLY_EMP", "MONTHLY_EMPLOYEE", "FOURWEEKLY_EMP", "MONTHLY" ], "default": "DAILY" } } }