{
  "id": "ngrok",
  "name": "ngrok",
  "homepage": "https://ngrok.com",
  "description": "The ngrok agent is a lightweight command-line program that forwards traffic from endpoints on the ngrok cloud service to your upstream services.",
  "icon": "SimpleIcons:ngrok",
  "executables": [
    "ngrok"
  ],
  "dotfiles": {
    "paths": [
      "~/Library/Application Support/ngrok/ngrok.yml",
      "~/.config/ngrok/ngrok.yml",
      "%LOCALAPPDATA%/ngrok/ngrok.yml",
      "~/.ngrok2/ngrok.yml"
    ],
    "exclude": [],
    "secret": [],
    "side_effect": false,
    "secret_paths": [
      {
        "file": [
          "~/Library/Application Support/ngrok/ngrok.yml",
          "~/.config/ngrok/ngrok.yml",
          "%LOCALAPPDATA%/ngrok/ngrok.yml",
          "~/.ngrok2/ngrok.yml"
        ],
        "match": {
          "key_path": [
            "authtoken",
            "api_key",
            "agent.authtoken",
            "agent.api_key"
          ]
        }
      }
    ]
  },
  "commands": {
    "format": 1,
    "label": "ngrok",
    "description": "Global options only; use the HTTP and TCP subcommands. Config-file tunnels (start) are left out.",
    "quality": "ai-draft",
    "base": "fig:ngrok",
    "parser": {
      "end_of_options": "--",
      "interleave": "permute",
      "long_equals": true,
      "short_attached": false,
      "short_bundles": false
    },
    "source": [
      {
        "id": "fig",
        "kind": "completion",
        "url": "https://github.com/withfig/autocomplete/blob/master/src/ngrok.ts",
        "license": "MIT"
      }
    ],
    "subcommand": [
      {
        "path": [
          "http"
        ],
        "label": "HTTP tunnel",
        "description": "Expose a local HTTP port or host.",
        "source": [
          {
            "id": "fig",
            "kind": "completion",
            "url": "https://github.com/withfig/autocomplete/blob/master/src/ngrok.ts",
            "license": "MIT"
          }
        ],
        "field": [
          {
            "id": "host",
            "label": "Port or host",
            "type": "string",
            "position": 0,
            "suggestions": [
              {
                "value": "8080",
                "label": "8080"
              }
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "hostname",
            "label": "Custom hostname",
            "type": "string",
            "option": [
              "--hostname"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "subdomain",
            "label": "Custom subdomain",
            "type": "string",
            "option": [
              "--subdomain"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "auth",
            "label": "Basic auth (user:password)",
            "type": "string",
            "option": [
              "--auth"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "bind_tls",
            "label": "Listen for",
            "type": "enum",
            "option": [
              "--bind-tls"
            ],
            "choices": [
              {
                "value": "true",
                "label": "true"
              },
              {
                "value": "false",
                "label": "false"
              },
              {
                "value": "both",
                "label": "both"
              }
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "host_header",
            "label": "Host header",
            "type": "string",
            "option": [
              "--host-header"
            ],
            "suggestions": [
              {
                "value": "rewrite",
                "label": "rewrite"
              }
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "config",
            "label": "Config file",
            "type": "path",
            "option": [
              "--config"
            ],
            "path": {
              "kind": "file",
              "role": "input"
            },
            "sources": [
              "fig"
            ]
          },
          {
            "id": "region",
            "label": "Region",
            "type": "enum",
            "option": [
              "--region"
            ],
            "choices": [
              {
                "value": "us",
                "label": "us"
              },
              {
                "value": "eu",
                "label": "eu"
              },
              {
                "value": "au",
                "label": "au"
              },
              {
                "value": "ap",
                "label": "ap"
              },
              {
                "value": "sa",
                "label": "sa"
              },
              {
                "value": "jp",
                "label": "jp"
              },
              {
                "value": "in",
                "label": "in"
              }
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "log_level",
            "label": "Log level",
            "type": "enum",
            "option": [
              "--log-level"
            ],
            "choices": [
              {
                "value": "crit",
                "label": "crit"
              },
              {
                "value": "warn",
                "label": "warn"
              },
              {
                "value": "error",
                "label": "error"
              },
              {
                "value": "info",
                "label": "info"
              },
              {
                "value": "debug",
                "label": "debug"
              }
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "log_format",
            "label": "Log format",
            "type": "enum",
            "option": [
              "--log-format"
            ],
            "choices": [
              {
                "value": "term",
                "label": "term"
              },
              {
                "value": "logfmt",
                "label": "logfmt"
              },
              {
                "value": "json",
                "label": "json"
              }
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "log",
            "label": "Log destination",
            "type": "string",
            "option": [
              "--log"
            ],
            "suggestions": [
              {
                "value": "stdout",
                "label": "stdout"
              },
              {
                "value": "stderr",
                "label": "stderr"
              },
              {
                "value": "false",
                "label": "false"
              }
            ],
            "sources": [
              "fig"
            ]
          }
        ],
        "task": [
          {
            "id": "http",
            "label": "Expose port",
            "fields": [
              "host",
              "region"
            ],
            "required": [
              "host"
            ]
          },
          {
            "id": "http-domain",
            "label": "Custom subdomain",
            "fields": [
              "host",
              "subdomain",
              "region"
            ],
            "required": [
              "host",
              "subdomain"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "host",
              "hostname",
              "subdomain",
              "region"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "auth",
              "bind_tls",
              "host_header",
              "config",
              "log_level",
              "log_format",
              "log"
            ]
          }
        ]
      },
      {
        "path": [
          "tcp"
        ],
        "label": "TCP tunnel",
        "description": "Expose a local TCP port.",
        "source": [
          {
            "id": "fig",
            "kind": "completion",
            "url": "https://github.com/withfig/autocomplete/blob/master/src/ngrok.ts",
            "license": "MIT"
          }
        ],
        "field": [
          {
            "id": "port",
            "label": "Port",
            "type": "string",
            "position": 0,
            "suggestions": [
              {
                "value": "22",
                "label": "22"
              }
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "remote_addr",
            "label": "Reserved remote address",
            "type": "string",
            "option": [
              "--remote-addr"
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "config",
            "label": "Config file",
            "type": "path",
            "option": [
              "--config"
            ],
            "path": {
              "kind": "file",
              "role": "input"
            },
            "sources": [
              "fig"
            ]
          },
          {
            "id": "region",
            "label": "Region",
            "type": "enum",
            "option": [
              "--region"
            ],
            "choices": [
              {
                "value": "us",
                "label": "us"
              },
              {
                "value": "eu",
                "label": "eu"
              },
              {
                "value": "au",
                "label": "au"
              },
              {
                "value": "ap",
                "label": "ap"
              },
              {
                "value": "sa",
                "label": "sa"
              },
              {
                "value": "jp",
                "label": "jp"
              },
              {
                "value": "in",
                "label": "in"
              }
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "log_level",
            "label": "Log level",
            "type": "enum",
            "option": [
              "--log-level"
            ],
            "choices": [
              {
                "value": "crit",
                "label": "crit"
              },
              {
                "value": "warn",
                "label": "warn"
              },
              {
                "value": "error",
                "label": "error"
              },
              {
                "value": "info",
                "label": "info"
              },
              {
                "value": "debug",
                "label": "debug"
              }
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "log_format",
            "label": "Log format",
            "type": "enum",
            "option": [
              "--log-format"
            ],
            "choices": [
              {
                "value": "term",
                "label": "term"
              },
              {
                "value": "logfmt",
                "label": "logfmt"
              },
              {
                "value": "json",
                "label": "json"
              }
            ],
            "sources": [
              "fig"
            ]
          },
          {
            "id": "log",
            "label": "Log destination",
            "type": "string",
            "option": [
              "--log"
            ],
            "suggestions": [
              {
                "value": "stdout",
                "label": "stdout"
              },
              {
                "value": "stderr",
                "label": "stderr"
              },
              {
                "value": "false",
                "label": "false"
              }
            ],
            "sources": [
              "fig"
            ]
          }
        ],
        "task": [
          {
            "id": "tcp",
            "label": "Expose port",
            "fields": [
              "port",
              "region"
            ],
            "required": [
              "port"
            ]
          }
        ],
        "group": [
          {
            "id": "basic",
            "label": "Basic",
            "fields": [
              "port",
              "remote_addr",
              "region"
            ]
          },
          {
            "id": "advanced",
            "label": "Advanced",
            "fields": [
              "config",
              "log_level",
              "log_format",
              "log"
            ]
          }
        ]
      }
    ]
  }
}
