{
  "version": "urirun.bindings.v2",
  "bindings": {
    "media://local/video/transcode": {
      "kind": "command",
      "adapter": "argv-template",
      "inputSchema": {
        "type": "object",
        "required": ["input", "output"],
        "properties": {
          "input": { "type": "string" },
          "output": { "type": "string" },
          "width": { "type": "integer", "default": 1280 },
          "height": { "type": "integer", "default": 720 }
        },
        "additionalProperties": false
      },
      "argv": ["ffmpeg", "-i", "{input}", "-vf", "scale={width}:{height}", "{output}"]
    },
    "say://local/echo/message": {
      "kind": "command",
      "adapter": "argv-template",
      "inputSchema": {
        "type": "object",
        "required": ["text"],
        "properties": {
          "text": { "type": "string" }
        },
        "additionalProperties": false
      },
      "argv": ["python3", "-c", "import sys; print(sys.argv[1])", "{text}"]
    },
    "shell://local/echo/message": {
      "kind": "shell",
      "adapter": "shell-template",
      "inputSchema": {
        "type": "object",
        "required": ["text"],
        "properties": {
          "text": { "type": "string" }
        },
        "additionalProperties": false
      },
      "shell": "printf '%s\\n' '{text}'"
    },
    "img://ffmpeg/video/thumbnail": {
      "kind": "docker",
      "adapter": "docker-run",
      "image": "jrottenberg/ffmpeg",
      "mount": ".",
      "inputSchema": {
        "type": "object",
        "required": ["input", "output"],
        "properties": {
          "input": { "type": "string" },
          "output": { "type": "string" },
          "at": { "type": "string", "default": "00:00:01" }
        },
        "additionalProperties": false
      },
      "command": ["-i", "{input}", "-ss", "{at}", "-vframes", "1", "{output}"]
    },
    "js://local/greet/message": {
      "kind": "command",
      "adapter": "argv-template",
      "inputSchema": {
        "type": "object",
        "required": ["name"],
        "properties": {
          "name": { "type": "string" }
        },
        "additionalProperties": false
      },
      "argv": ["node", "-e", "console.log(process.argv[1])", "{name}"],
      "meta": {
        "generatedBy": "v2/examples/generators/js/example.mjs"
      }
    },
    "node://local/hash/sha256": {
      "kind": "command",
      "adapter": "argv-template",
      "inputSchema": {
        "type": "object",
        "required": ["text"],
        "properties": {
          "text": { "type": "string" }
        },
        "additionalProperties": false
      },
      "argv": [
        "node",
        "-e",
        "const crypto=require('crypto'); console.log(crypto.createHash('sha256').update(process.argv[1]).digest('hex'))",
        "{text}"
      ],
      "meta": {
        "generatedBy": "v2/examples/generators/nodejs/generate-bindings.mjs"
      }
    },
    "ts://local/math/add": {
      "kind": "command",
      "adapter": "argv-template",
      "inputSchema": {
        "type": "object",
        "required": ["a"],
        "properties": {
          "a": { "type": "integer" },
          "b": { "type": "integer", "default": 0 }
        },
        "additionalProperties": false
      },
      "argv": ["node", "-e", "console.log(Number(process.argv[1]) + Number(process.argv[2]))", "{a}", "{b}"],
      "meta": {
        "generatedBy": "v2/examples/generators/ts/decorators.ts"
      }
    },
    "php://local/slug/create": {
      "kind": "command",
      "adapter": "argv-template",
      "inputSchema": {
        "type": "object",
        "required": ["text"],
        "properties": {
          "text": { "type": "string" },
          "limit": { "type": "integer", "default": 64 }
        },
        "additionalProperties": false
      },
      "argv": ["php", "-r", "echo strtolower(preg_replace('/[^a-z0-9]+/i', '-', $argv[1]));", "{text}"],
      "meta": {
        "generatedBy": "v2/examples/generators/php/example.php"
      }
    },
    "package://pypi/urirun/install": {
      "kind": "command",
      "adapter": "argv-template",
      "inputSchema": {
        "type": "object",
        "properties": {
          "requirement": { "type": "string", "default": "urirun" }
        },
        "additionalProperties": false
      },
      "argv": ["python3", "-m", "pip", "install", "{requirement}"],
      "meta": {
        "generatedBy": "urirun.v2 add-pypi urirun",
        "standard": "PyPI requirement specifier"
      }
    }
  }
}
