naftiko: 1.0.0-alpha2 info: label: Schlage Home API — Webhook Subscriptions description: 'Schlage Home API — Webhook Subscriptions. 4 operations for registering HTTPS callback URLs to receive device, command, access code, and account events. On subscription creation an OPTIONS validation request is sent that must succeed within 30 seconds. Signatures are verifiable via a public key. Self-contained Naftiko capability covering one Allegion business surface.' tags: - Allegion - Schlage Home - Webhooks - Events created: '2026-05-23' modified: '2026-05-23' binds: - namespace: env keys: SCHLAGE_HOME_ACCESS_TOKEN: SCHLAGE_HOME_ACCESS_TOKEN capability: consumes: - type: http namespace: schlage-home-webhooks baseUri: https://api.allegion.com/schlage-home description: Schlage Home API — Webhook Subscriptions business capability. Self-contained, no shared references. resources: - name: subscriptions path: /webhooks/subscriptions operations: - name: listWebhookSubscriptions method: GET description: List webhook subscriptions in this integration. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: createWebhookSubscription method: POST description: Create a webhook subscription. URL must be HTTPS and respond 2xx to a validation OPTIONS request within 30 seconds. inputParameters: - name: body in: body type: object required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: subscription path: /webhooks/subscriptions/{subscriptionId} operations: - name: getWebhookSubscription method: GET description: Get a webhook subscription. inputParameters: - name: subscriptionId in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: deleteWebhookSubscription method: DELETE description: Delete a webhook subscription. inputParameters: - name: subscriptionId in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: bearer token: '{{env.SCHLAGE_HOME_ACCESS_TOKEN}}' exposes: - type: rest namespace: schlage-home-webhooks-rest port: 8080 description: REST adapter for Schlage Home Webhook Subscriptions. resources: - path: /v1/webhooks/subscriptions name: subscriptions description: REST surface for listWebhookSubscriptions and createWebhookSubscription. operations: - method: GET name: listWebhookSubscriptions description: List Webhook Subscriptions call: schlage-home-webhooks.listWebhookSubscriptions outputParameters: - type: object mapping: $. - method: POST name: createWebhookSubscription description: Create Webhook Subscription call: schlage-home-webhooks.createWebhookSubscription with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/webhooks/subscriptions/{subscriptionId} name: subscription description: REST surface for getWebhookSubscription and deleteWebhookSubscription. operations: - method: GET name: getWebhookSubscription description: Get Webhook Subscription call: schlage-home-webhooks.getWebhookSubscription with: subscriptionId: rest.subscriptionId outputParameters: - type: object mapping: $. - method: DELETE name: deleteWebhookSubscription description: Delete Webhook Subscription call: schlage-home-webhooks.deleteWebhookSubscription with: subscriptionId: rest.subscriptionId outputParameters: - type: object mapping: $.