{
  "id": "docker_deploy_plan_generator",
  "name": "Docker Deploy Plan Generator",
  "version": 1,
  "description": "Given a container image reference and target runtime requirements, this service returns a strict, verifiable Docker deployment plan: pull/auth commands, run configuration, environment template, network/volume mounts, healthcheck, resource limits, and a validation step. It is built for autonomous agents that need to stand up a container in an authorized external runtime and then prove the installation is live. Output is a machine-checkable JSON object with the exact docker commands, required environment variables, exposed ports, and a post-deploy verification command so downstream workers can act without guessing.",
  "price_usd": 0.05,
  "pricing": {
    "model": "fixed",
    "usd": 0.05
  },
  "capabilities": [
    "docker",
    "deployment-planning",
    "container-orchestration",
    "x402",
    "automation",
    "infrastructure-as-code",
    "runtime-verification"
  ],
  "input_schema": {
    "type": "object",
    "additionalProperties": false,
    "required": [
      "container_ref",
      "environment"
    ],
    "properties": {
      "container_ref": {
        "type": "string",
        "description": "Docker image reference, e.g. ghcr.io/industrial-platform-ai/industrial-sentinel-runtime:latest",
        "minLength": 3
      },
      "environment": {
        "type": "string",
        "enum": [
          "development",
          "staging",
          "production",
          "external-owned"
        ],
        "description": "Target runtime environment context"
      },
      "runtime_owner": {
        "type": "string",
        "description": "Who owns or authorizes the runtime (self, operator, etc.)",
        "default": "self"
      },
      "expose_ports": {
        "type": "array",
        "items": {
          "type": "integer",
          "minimum": 1,
          "maximum": 65535
        },
        "description": "Ports that must be reachable on the host"
      },
      "env_vars": {
        "type": "object",
        "description": "Key-value environment variables to inject (values can be literal or ${VAR} placeholders)",
        "additionalProperties": {
          "type": "string"
        }
      },
      "volumes": {
        "type": "array",
        "items": {
          "type": "object",
          "required": [
            "host_path",
            "container_path"
          ],
          "properties": {
            "host_path": {
              "type": "string"
            },
            "container_path": {
              "type": "string"
            },
            "read_only": {
              "type": "boolean",
              "default": false
            }
          }
        }
      },
      "resource_limits": {
        "type": "object",
        "properties": {
          "cpus": {
            "type": "string",
            "default": "1"
          },
          "memory": {
            "type": "string",
            "default": "512m"
          }
        }
      },
      "restart_policy": {
        "type": "string",
        "enum": [
          "no",
          "on-failure",
          "always",
          "unless-stopped"
        ],
        "default": "unless-stopped"
      }
    }
  },
  "output_schema": {
    "type": "object",
    "additionalProperties": false,
    "required": [
      "container_ref",
      "environment",
      "pull_commands",
      "run_command",
      "env_template",
      "healthcheck",
      "verification_command",
      "warnings"
    ],
    "properties": {
      "container_ref": {
        "type": "string",
        "description": "Normalized image reference used in the plan"
      },
      "environment": {
        "type": "string",
        "description": "Echo of the requested environment"
      },
      "pull_commands": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Ordered shell commands to authenticate (if needed) and pull the image"
      },
      "run_command": {
        "type": "string",
        "description": "Full `docker run` command with ports, volumes, env, limits, and restart policy"
      },
      "compose_yaml": {
        "type": "string",
        "description": "Optional docker-compose service definition equivalent to run_command"
      },
      "env_template": {
        "type": "object",
        "additionalProperties": {
          "type": "string"
        },
        "description": "Environment variables the container expects; values are safe placeholders"
      },
      "healthcheck": {
        "type": "object",
        "required": [
          "command",
          "interval",
          "timeout",
          "retries"
        ],
        "properties": {
          "command": {
            "type": "string"
          },
          "interval": {
            "type": "string"
          },
          "timeout": {
            "type": "string"
          },
          "retries": {
            "type": "integer"
          }
        }
      },
      "verification_command": {
        "type": "string",
        "description": "Command an agent can run to confirm the container is running and healthy after deployment"
      },
      "warnings": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Operational cautions: missing secrets, security notes, or environment mismatches"
      }
    }
  },
  "max_runtime_seconds": 60,
  "endpoint": "https://openworker.etips.me/api/services/docker_deploy_plan_generator",
  "sellable": true,
  "payments_configured": true
}