{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "definitions": {
    "AbsolutePathBuf": {
      "description": "A path that is guaranteed to be absolute and normalized (though it is not guaranteed to be canonicalized or exist on the filesystem).\n\nIMPORTANT: When deserializing an `AbsolutePathBuf`, a base path must be set using [AbsolutePathBufGuard::new]. If no base path is set, the deserialization will fail unless the path being deserialized is already absolute.",
      "type": "string"
    },
    "AskForApproval": {
      "description": "Determines the conditions under which the user is consulted to approve running the command proposed by Codex.",
      "oneOf": [
        {
          "description": "Under this policy, only \"known safe\" commands—as determined by `is_safe_command()`—that **only read files** are auto‑approved. Everything else will ask the user to approve.",
          "enum": [
            "untrusted"
          ],
          "type": "string"
        },
        {
          "description": "*All* commands are auto‑approved, but they are expected to run inside a sandbox where network access is disabled and writes are confined to a specific set of paths. If the command fails, it will be escalated to the user to approve execution without a sandbox.",
          "enum": [
            "on-failure"
          ],
          "type": "string"
        },
        {
          "description": "The model decides when to ask the user for approval.",
          "enum": [
            "on-request"
          ],
          "type": "string"
        },
        {
          "description": "Never ask the user to approve commands. Failures are immediately returned to the model, and never escalated to the user for approval.",
          "enum": [
            "never"
          ],
          "type": "string"
        }
      ]
    },
    "ForcedLoginMethod": {
      "enum": [
        "chatgpt",
        "api"
      ],
      "type": "string"
    },
    "Profile": {
      "properties": {
        "approvalPolicy": {
          "anyOf": [
            {
              "$ref": "#/definitions/AskForApproval"
            },
            {
              "type": "null"
            }
          ]
        },
        "chatgptBaseUrl": {
          "type": [
            "string",
            "null"
          ]
        },
        "model": {
          "type": [
            "string",
            "null"
          ]
        },
        "modelProvider": {
          "type": [
            "string",
            "null"
          ]
        },
        "modelReasoningEffort": {
          "anyOf": [
            {
              "$ref": "#/definitions/ReasoningEffort"
            },
            {
              "type": "null"
            }
          ]
        },
        "modelReasoningSummary": {
          "anyOf": [
            {
              "$ref": "#/definitions/ReasoningSummary"
            },
            {
              "type": "null"
            }
          ]
        },
        "modelVerbosity": {
          "anyOf": [
            {
              "$ref": "#/definitions/Verbosity"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "type": "object"
    },
    "ReasoningEffort": {
      "description": "See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#get-started-with-reasoning",
      "enum": [
        "none",
        "minimal",
        "low",
        "medium",
        "high",
        "xhigh"
      ],
      "type": "string"
    },
    "ReasoningSummary": {
      "description": "A summary of the reasoning performed by the model. This can be useful for debugging and understanding the model's reasoning process. See https://platform.openai.com/docs/guides/reasoning?api-mode=responses#reasoning-summaries",
      "oneOf": [
        {
          "enum": [
            "auto",
            "concise",
            "detailed"
          ],
          "type": "string"
        },
        {
          "description": "Option to disable reasoning summaries.",
          "enum": [
            "none"
          ],
          "type": "string"
        }
      ]
    },
    "SandboxMode": {
      "enum": [
        "read-only",
        "workspace-write",
        "danger-full-access"
      ],
      "type": "string"
    },
    "SandboxSettings": {
      "properties": {
        "excludeSlashTmp": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "excludeTmpdirEnvVar": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "networkAccess": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "writableRoots": {
          "default": [],
          "items": {
            "$ref": "#/definitions/AbsolutePathBuf"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "Tools": {
      "properties": {
        "viewImage": {
          "type": [
            "boolean",
            "null"
          ]
        },
        "webSearch": {
          "type": [
            "boolean",
            "null"
          ]
        }
      },
      "type": "object"
    },
    "UserSavedConfig": {
      "properties": {
        "approvalPolicy": {
          "anyOf": [
            {
              "$ref": "#/definitions/AskForApproval"
            },
            {
              "type": "null"
            }
          ]
        },
        "forcedChatgptWorkspaceId": {
          "type": [
            "string",
            "null"
          ]
        },
        "forcedLoginMethod": {
          "anyOf": [
            {
              "$ref": "#/definitions/ForcedLoginMethod"
            },
            {
              "type": "null"
            }
          ]
        },
        "model": {
          "type": [
            "string",
            "null"
          ]
        },
        "modelReasoningEffort": {
          "anyOf": [
            {
              "$ref": "#/definitions/ReasoningEffort"
            },
            {
              "type": "null"
            }
          ]
        },
        "modelReasoningSummary": {
          "anyOf": [
            {
              "$ref": "#/definitions/ReasoningSummary"
            },
            {
              "type": "null"
            }
          ]
        },
        "modelVerbosity": {
          "anyOf": [
            {
              "$ref": "#/definitions/Verbosity"
            },
            {
              "type": "null"
            }
          ]
        },
        "profile": {
          "type": [
            "string",
            "null"
          ]
        },
        "profiles": {
          "additionalProperties": {
            "$ref": "#/definitions/Profile"
          },
          "type": "object"
        },
        "sandboxMode": {
          "anyOf": [
            {
              "$ref": "#/definitions/SandboxMode"
            },
            {
              "type": "null"
            }
          ]
        },
        "sandboxSettings": {
          "anyOf": [
            {
              "$ref": "#/definitions/SandboxSettings"
            },
            {
              "type": "null"
            }
          ]
        },
        "tools": {
          "anyOf": [
            {
              "$ref": "#/definitions/Tools"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "profiles"
      ],
      "type": "object"
    },
    "Verbosity": {
      "description": "Controls output length/detail on GPT-5 models via the Responses API. Serialized with lowercase values to match the OpenAI API.",
      "enum": [
        "low",
        "medium",
        "high"
      ],
      "type": "string"
    }
  },
  "properties": {
    "config": {
      "$ref": "#/definitions/UserSavedConfig"
    }
  },
  "required": [
    "config"
  ],
  "title": "GetUserSavedConfigResponse",
  "type": "object"
}