import { s } from "../schema.js"; import { defineInterface } from "../types.js"; /** * Pausing what a device does, a microwave that heats, and going on with it. Amazon pairs the interface with * Alexa.Cooking. Alexa sends Resume to a device declared with allowRemoteResume only; for another one it asks the * user to press start on the device. */ export const TimeHoldController = defineInterface({ namespace: "Alexa.TimeHoldController", version: "3", doc: "https://developer.amazon.com/docs/alexaplus/device-apis/alexa-timeholdcontroller.html", kind: "controller", tier: 2, instanced: false, properties: { holdStartTime: { name: "holdStartTime", value: s.dateTime() }, holdEndTime: { name: "holdEndTime", value: s.dateTime() }, }, directives: { Hold: { name: "Hold", payload: s.object({}) }, Resume: { name: "Resume", payload: s.object({}), when: ({ options }) => options.allowRemoteResume !== false }, }, options: s.object({ allowRemoteResume: s.boolean(), }, { unknownKeys: "reject" }), // A capability declared the 1.x way has no allowRemoteResume; check() says so discovery: ({ options: { allowRemoteResume } }) => (allowRemoteResume === undefined ? {} : { configuration: { allowRemoteResume } }), });