{
  "service": "push_by_techulus",
  "displayName": "Push by Techulus",
  "categories": [
    "Communication",
    "Developer Tools"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "PUSH_BY_TECHULUS_API_KEY",
      "description": "Push by Techulus account or team API key sent with the x-api-key header. Find account keys on the console integrations page at https://push.techulus.com/console/integrations; team keys are shown in the team details screen."
    }
  ],
  "homepageUrl": "https://push.techulus.com",
  "actions": [
    {
      "id": "push_by_techulus.send_group_notification",
      "service": "push_by_techulus",
      "name": "send_group_notification",
      "description": "Send a Push by Techulus notification to a specific device group.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "groupId": {
            "type": "string",
            "minLength": 1,
            "description": "The Push by Techulus device group ID used in the request path."
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "The notification title shown on recipient devices."
          },
          "body": {
            "type": "string",
            "minLength": 1,
            "description": "The notification body text shown on recipient devices."
          },
          "sound": {
            "type": "string",
            "enum": [
              "default",
              "arcade",
              "correct",
              "fail",
              "harp",
              "reveal",
              "bubble",
              "doorbell",
              "flute",
              "money",
              "scifi",
              "clear",
              "elevator",
              "guitar",
              "pop"
            ],
            "description": "The notification sound name documented by Push by Techulus."
          },
          "channel": {
            "type": "string",
            "minLength": 1,
            "description": "The alphanumeric notification channel identifier. Hyphens are allowed, and Push by Techulus defaults it to feed.",
            "pattern": "^[A-Za-z0-9-]+$"
          },
          "link": {
            "type": "string",
            "description": "The URL to open when the recipient taps the notification.",
            "format": "uri"
          },
          "image": {
            "type": "string",
            "description": "The image URL to show with the notification.",
            "format": "uri"
          },
          "timeSensitive": {
            "type": "boolean",
            "description": "Whether iOS should deliver the notification immediately even in Do Not Disturb mode."
          }
        },
        "additionalProperties": false,
        "required": [
          "groupId",
          "title",
          "body"
        ],
        "description": "The Push by Techulus notification to send to a device group."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether Push by Techulus accepted the notification request."
          },
          "message": {
            "type": "string",
            "description": "The response message returned by Push by Techulus."
          },
          "responses": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "success": {
                  "type": "boolean",
                  "description": "Whether this individual device notification succeeded."
                },
                "message": {
                  "type": "string",
                  "description": "The message returned for this individual device notification."
                }
              },
              "additionalProperties": false,
              "required": [
                "success",
                "message"
              ],
              "description": "A per-device notification response returned by Push by Techulus."
            },
            "description": "Per-device responses returned by Push by Techulus when available."
          }
        },
        "additionalProperties": false,
        "required": [
          "success"
        ],
        "description": "The Push by Techulus response for a notification request."
      }
    },
    {
      "id": "push_by_techulus.send_notification",
      "service": "push_by_techulus",
      "name": "send_notification",
      "description": "Send a Push by Techulus notification to all devices targeted by the account or team API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "The notification title shown on recipient devices."
          },
          "body": {
            "type": "string",
            "minLength": 1,
            "description": "The notification body text shown on recipient devices."
          },
          "sound": {
            "type": "string",
            "enum": [
              "default",
              "arcade",
              "correct",
              "fail",
              "harp",
              "reveal",
              "bubble",
              "doorbell",
              "flute",
              "money",
              "scifi",
              "clear",
              "elevator",
              "guitar",
              "pop"
            ],
            "description": "The notification sound name documented by Push by Techulus."
          },
          "channel": {
            "type": "string",
            "minLength": 1,
            "description": "The alphanumeric notification channel identifier. Hyphens are allowed, and Push by Techulus defaults it to feed.",
            "pattern": "^[A-Za-z0-9-]+$"
          },
          "link": {
            "type": "string",
            "description": "The URL to open when the recipient taps the notification.",
            "format": "uri"
          },
          "image": {
            "type": "string",
            "description": "The image URL to show with the notification.",
            "format": "uri"
          },
          "timeSensitive": {
            "type": "boolean",
            "description": "Whether iOS should deliver the notification immediately even in Do Not Disturb mode."
          }
        },
        "additionalProperties": false,
        "required": [
          "title",
          "body"
        ],
        "description": "The Push by Techulus notification to send to all devices targeted by the API key."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether Push by Techulus accepted the notification request."
          },
          "message": {
            "type": "string",
            "description": "The response message returned by Push by Techulus."
          },
          "responses": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "success": {
                  "type": "boolean",
                  "description": "Whether this individual device notification succeeded."
                },
                "message": {
                  "type": "string",
                  "description": "The message returned for this individual device notification."
                }
              },
              "additionalProperties": false,
              "required": [
                "success",
                "message"
              ],
              "description": "A per-device notification response returned by Push by Techulus."
            },
            "description": "Per-device responses returned by Push by Techulus when available."
          }
        },
        "additionalProperties": false,
        "required": [
          "success"
        ],
        "description": "The Push by Techulus response for a notification request."
      }
    }
  ]
}
