{
  "name": "CreateSshSigningKeyGithub",
  "fully_qualified_name": "GithubApi.CreateSshSigningKeyGithub@0.1.0",
  "description": "Create an SSH signing key for your GitHub account.\n\nThis tool allows authenticated users to create an SSH signing key for their GitHub account. Authentication is required via Basic Authentication or OAuth with the `write:ssh_signing_key` scope. It should be used when you need to add SSH signing keys to your GitHub profile.",
  "toolkit": {
    "name": "ArcadeGithubApi",
    "description": null,
    "version": "0.1.0"
  },
  "input": {
    "parameters": [
      {
        "name": "public_ssh_key",
        "required": true,
        "description": "The public SSH key to add to your GitHub account. Check for existing SSH keys before adding.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "The public SSH key to add to your GitHub account. For more information, see \"[Checking for existing SSH keys](https://docs.github.com/enterprise-server@3.8/authentication/connecting-to-github-with-ssh/checking-for-existing-ssh-keys).\""
        },
        "inferrable": true,
        "http_endpoint_parameter_name": "key"
      },
      {
        "name": "ssh_key_title",
        "required": false,
        "description": "A descriptive name for the new SSH signing key.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "A descriptive name for the new key."
        },
        "inferrable": true,
        "http_endpoint_parameter_name": "title"
      }
    ]
  },
  "output": {
    "description": "Response from the API endpoint 'users/create-ssh-signing-key-for-authenticated-user'.",
    "available_modes": [
      "value",
      "error",
      "null"
    ],
    "value_schema": {
      "val_type": "json",
      "inner_val_type": null,
      "enum": null,
      "properties": null,
      "inner_properties": null,
      "description": null
    }
  },
  "requirements": {
    "authorization": {
      "provider_id": "arcade-github",
      "provider_type": "oauth2",
      "id": null,
      "oauth2": null
    },
    "secrets": [
      {
        "key": "GIT_SERVER_URL"
      }
    ],
    "metadata": null
  },
  "deprecation_message": null,
  "metadata": {
    "object_type": "api_wrapper_tool",
    "version": "1.1.0",
    "description": "Tools that enable LLMs to interact directly with the GitHub API."
  },
  "http_endpoint": {
    "metadata": {
      "object_type": "http_endpoint",
      "version": "1.2.0",
      "description": ""
    },
    "url": "{git_server_url}/api/v3/user/ssh_signing_keys",
    "http_method": "POST",
    "headers": {},
    "parameters": [
      {
        "name": "key",
        "tool_parameter_name": "public_ssh_key",
        "description": "The public SSH key to add to your GitHub account. For more information, see \"[Checking for existing SSH keys](https://docs.github.com/enterprise-server@3.8/authentication/connecting-to-github-with-ssh/checking-for-existing-ssh-keys).\"",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "The public SSH key to add to your GitHub account. For more information, see \"[Checking for existing SSH keys](https://docs.github.com/enterprise-server@3.8/authentication/connecting-to-github-with-ssh/checking-for-existing-ssh-keys).\""
        },
        "accepted_as": "body",
        "required": true,
        "deprecated": false,
        "default": null,
        "documentation_urls": []
      },
      {
        "name": "title",
        "tool_parameter_name": "ssh_key_title",
        "description": "A descriptive name for the new key.",
        "value_schema": {
          "val_type": "string",
          "inner_val_type": null,
          "enum": null,
          "properties": null,
          "inner_properties": null,
          "description": "A descriptive name for the new key."
        },
        "accepted_as": "body",
        "required": false,
        "deprecated": false,
        "default": null,
        "documentation_urls": []
      }
    ],
    "documentation_urls": [],
    "secrets": [
      {
        "arcade_key": "GIT_SERVER_URL",
        "parameter_name": "git_server_url",
        "accepted_as": "path",
        "formatted_value": null,
        "description": "",
        "is_auth_token": false
      },
      {
        "arcade_key": "auth_token",
        "parameter_name": "Authorization",
        "accepted_as": "header",
        "formatted_value": "Bearer {authorization}",
        "description": "The OAuth token to use for authentication.",
        "is_auth_token": true
      }
    ],
    "request_body_spec": "{\n  \"content\": {\n    \"application/json\": {\n      \"examples\": {\n        \"default\": {\n          \"value\": {\n            \"key\": \"2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234\",\n            \"title\": \"ssh-rsa AAAAB3NzaC1yc2EAAA\"\n          }\n        }\n      },\n      \"schema\": {\n        \"properties\": {\n          \"key\": {\n            \"description\": \"The public SSH key to add to your GitHub account. For more information, see \\\"[Checking for existing SSH keys](https://docs.github.com/enterprise-server@3.8/authentication/connecting-to-github-with-ssh/checking-for-existing-ssh-keys).\\\"\",\n            \"pattern\": \"^ssh-(rsa|dss|ed25519) |^ecdsa-sha2-nistp(256|384|521) |^(sk-ssh-ed25519|sk-ecdsa-sha2-nistp256)@openssh.com \",\n            \"type\": \"string\"\n          },\n          \"title\": {\n            \"description\": \"A descriptive name for the new key.\",\n            \"example\": \"Personal MacBook Air\",\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"key\"\n        ],\n        \"type\": \"object\"\n      }\n    }\n  },\n  \"required\": true\n}",
    "use_request_body_schema_mode": false,
    "validate_request_body_schema": false
  }
}
