{
  "$defs": {
    "AnsibleBuilderModel": {
      "additionalProperties": false,
      "properties": {
        "workdir": {
          "default": "/tmp/",
          "description": "Specify the path that contains ansible-builder manifest files",
          "title": "Workdir",
          "type": "string"
        }
      },
      "type": "object"
    },
    "AnsibleModel": {
      "additionalProperties": false,
      "properties": {
        "cmdline": {
          "description": "Extra parameters passed to the corresponding command",
          "title": "Cmdline",
          "type": "string"
        },
        "config": {
          "description": "Specify the path to the ansible configuration file",
          "title": "Config",
          "type": "string"
        },
        "inventories": {
          "description": "Specify an inventory file path or host list",
          "items": {
            "type": "string"
          },
          "title": "Inventories",
          "type": "array"
        },
        "playbook": {
          "description": "Specify the playbook name",
          "title": "Playbook",
          "type": "string"
        }
      },
      "title": "AnsibleModel",
      "type": "object"
    },
    "AnsibleNavigatorModel": {
      "additionalProperties": false,
      "properties": {
        "ansible": {
          "$ref": "#/$defs/AnsibleModel"
        },
        "ansible-builder": {
          "$ref": "#/$defs/AnsibleBuilderModel"
        },
        "ansible-runner": {
          "$ref": "#/$defs/AnsibleRunnerModel"
        },
        "app": {
          "default": "welcome",
          "description": "Subcommands",
          "enum": [
            "collections",
            "config",
            "doc",
            "exec",
            "images",
            "inventory",
            "replay",
            "run",
            "welcome"
          ],
          "title": "App",
          "type": "string"
        },
        "collection-doc-cache-path": {
          "default": "$HOME/.cache/ansible-navigator/collection_doc_cache.db",
          "description": "The path to collection doc cache",
          "title": "Collection-Doc-Cache-Path",
          "type": "string"
        },
        "color": {
          "$ref": "#/$defs/ColorModel"
        },
        "documentation": {
          "$ref": "#/$defs/DocumentationModel"
        },
        "editor": {
          "$ref": "#/$defs/EditorModel"
        },
        "exec": {
          "$ref": "#/$defs/ExecModel"
        },
        "execution-environment": {
          "$ref": "#/$defs/ExecutionEnvironmentModel"
        },
        "help-builder": {
          "default": false,
          "description": "Help options for ansible-builder command in stdout mode",
          "title": "Help-Builder",
          "type": "boolean"
        },
        "help-config": {
          "default": false,
          "description": "Help options for ansible-config command in stdout mode",
          "title": "Help-Config",
          "type": "boolean"
        },
        "help-doc": {
          "default": false,
          "description": "Help options for ansible-doc command in stdout mode",
          "title": "Help-Doc",
          "type": "boolean"
        },
        "help-inventory": {
          "default": false,
          "description": "Help options for ansible-inventory command in stdout mode",
          "title": "Help-Inventory",
          "type": "boolean"
        },
        "help-playbook": {
          "default": false,
          "description": "Help options for ansible-playbook command in stdout mode",
          "title": "Help-Playbook",
          "type": "boolean"
        },
        "inventory-columns": {
          "description": "Specify a host attribute to show in the inventory view",
          "items": {
            "type": "string"
          },
          "title": "Inventory-Columns",
          "type": "array"
        },
        "logging": {
          "$ref": "#/$defs/LoggingModel"
        },
        "mode": {
          "default": "interactive",
          "description": "Specify the user-interface mode",
          "enum": ["stdout", "interactive"],
          "title": "Mode",
          "type": "string"
        },
        "playbook-artifact": {
          "$ref": "#/$defs/PlaybookArtifactModel"
        }
      },
      "title": "AnsibleNavigatorModel",
      "type": "object"
    },
    "AnsibleRunnerModel": {
      "additionalProperties": false,
      "properties": {
        "artifact-dir": {
          "description": "The directory path to store artifacts generated by ansible-runner",
          "title": "Artifact-Dir",
          "type": "string"
        },
        "rotate-artifacts-count": {
          "description": "Keep ansible-runner artifact directories, for last n runs, if set to 0 artifact directories won't be deleted",
          "title": "Rotate-Artifacts-Count",
          "type": "integer"
        },
        "timeout": {
          "description": "The timeout value after which ansible-runner will force stop the execution",
          "title": "Timeout",
          "type": "integer"
        }
      },
      "title": "AnsibleRunnerModel",
      "type": "object"
    },
    "ColorModel": {
      "additionalProperties": false,
      "properties": {
        "enable": {
          "default": false,
          "description": "Enable the use of color in the display",
          "title": "Enable",
          "type": "boolean"
        },
        "osc4": {
          "default": true,
          "description": "Enable or disable terminal color changing support with OSC 4",
          "title": "Osc4",
          "type": "boolean"
        }
      },
      "title": "ColorModel",
      "type": "object"
    },
    "DocumentationModel": {
      "additionalProperties": false,
      "properties": {
        "plugin": {
          "$ref": "#/$defs/PluginModel"
        }
      },
      "title": "DocumentationModel",
      "type": "object"
    },
    "EditorModel": {
      "additionalProperties": false,
      "properties": {
        "command": {
          "default": "vi +{line_number} {filename}",
          "description": "Specify the editor command",
          "title": "Command",
          "type": "string"
        },
        "console": {
          "default": true,
          "description": "Specify if the editor is console based",
          "title": "Console",
          "type": "boolean"
        }
      },
      "title": "EditorModel",
      "type": "object"
    },
    "EnvironmentVariablesModel": {
      "additionalProperties": false,
      "properties": {
        "pass": {
          "description": "Specify an exiting environment variable to be passed through to and set within the execution environment",
          "items": {
            "type": "string"
          },
          "title": "Pass",
          "type": "array"
        },
        "set": {
          "additionalProperties": {
            "type": "string"
          },
          "description": "Specify an environment variable and a value to be set within the execution environment",
          "title": "Set",
          "type": "object"
        }
      },
      "title": "EnvironmentVariablesModel",
      "type": "object"
    },
    "ExecModel": {
      "additionalProperties": false,
      "properties": {
        "command": {
          "default": "/bin/bash",
          "description": "Specify the command to run within the execution environment",
          "title": "Command",
          "type": "string"
        },
        "shell": {
          "default": true,
          "description": "Specify the exec command should be run in a shell",
          "title": "Shell",
          "type": "boolean"
        }
      },
      "title": "ExecModel",
      "type": "object"
    },
    "ExecutionEnvironmentModel": {
      "additionalProperties": false,
      "properties": {
        "container-engine": {
          "default": "auto",
          "description": "Specify the container engine (auto=podman then docker)",
          "enum": ["auto", "podman", "docker"],
          "title": "Container-Engine",
          "type": "string"
        },
        "container-options": {
          "description": "Extra parameters passed to the container engine command",
          "items": {
            "type": "string"
          },
          "title": "Container-Options",
          "type": "array"
        },
        "enabled": {
          "default": true,
          "description": "Enable or disable the use of an execution environment",
          "title": "Enabled",
          "type": "boolean"
        },
        "environment-variables": {
          "$ref": "#/$defs/EnvironmentVariablesModel"
        },
        "image": {
          "default": "quay.io/ansible/creator-ee:v0.2.0",
          "description": "Specify the name of the execution environment image",
          "title": "Image",
          "type": "string"
        },
        "pull-policy": {
          "default": "tag",
          "description": "Specify the image pull policy.\nalways: Always pull the image\nmissing: Pull if not locally available\nnever: Never pull the image\ntag: if the image tag is 'latest', always pull the image, otherwise pull if not locally available",
          "enum": ["always", "missing", "never", "tag"],
          "title": "Pull-Policy",
          "type": "string"
        },
        "volume-mounts": {
          "description": "Specify volume to be bind mounted within an execution environment",
          "items": {
            "$ref": "#/$defs/VolumeMountsModel"
          },
          "title": "Volume-Mounts",
          "type": "array"
        }
      },
      "title": "ExecutionEnvironmentModel",
      "type": "object"
    },
    "LoggingModel": {
      "additionalProperties": false,
      "properties": {
        "append": {
          "default": true,
          "description": "Specify if log messages should be appended to an existing log file, otherwise a new log file will be created per session",
          "title": "Append",
          "type": "boolean"
        },
        "file": {
          "default": "$PWD/ansible-navigator.",
          "description": "Specify the full path for the ansible-navigator log file",
          "title": "File",
          "type": "string"
        },
        "level": {
          "default": "warning",
          "description": "Specify the ansible-navigator log level",
          "enum": ["debug", "info", "warning", "error", "critical"],
          "title": "Level",
          "type": "string"
        }
      },
      "title": "LoggingModel",
      "type": "object"
    },
    "PlaybookArtifactModel": {
      "additionalProperties": false,
      "properties": {
        "enable": {
          "default": true,
          "description": "Enable or disable the creation of artifacts for completed playbooks.\nNote: not compatible with 'mode: stdout' when playbooks require user input",
          "title": "Enable",
          "type": "boolean"
        },
        "replay": {
          "description": "Specify the path for the playbook artifact to replay",
          "title": "Replay",
          "type": "string"
        },
        "save-as": {
          "default": "{playbook_dir}/{playbook_name}-artifact-{ts_utc}.json",
          "description": "Specify the name for artifacts created from completed playbooks",
          "title": "Save-As",
          "type": "string"
        }
      },
      "title": "PlaybookArtifactModel",
      "type": "object"
    },
    "PluginModel": {
      "additionalProperties": false,
      "properties": {
        "name": {
          "description": "Specify the plugin name",
          "title": "Name",
          "type": "string"
        },
        "type": {
          "default": "module",
          "description": "Specify the plugin type",
          "enum": [
            "become",
            "cache",
            "callback",
            "cliconf",
            "connection",
            "httpapi",
            "inventory",
            "lookup",
            "module",
            "netconf",
            "shell",
            "strategy",
            "vars"
          ],
          "title": "Type",
          "type": "string"
        }
      },
      "title": "PluginModel",
      "type": "object"
    },
    "VolumeMountsModel": {
      "additionalProperties": false,
      "properties": {
        "dest": {
          "title": "Dest",
          "type": "string"
        },
        "label": {
          "title": "Label",
          "type": "string"
        },
        "src": {
          "title": "Src",
          "type": "string"
        }
      },
      "required": ["src", "dest"],
      "title": "VolumeMountsModel",
      "type": "object"
    }
  },
  "$id": "https://raw.githubusercontent.com/ansible/ansible-lint/main/src/ansiblelint/schemas/ansible-navigator.json",
  "$schema": "http://json-schema.org/draft-07/schema",
  "additionalProperties": false,
  "examples": ["ansible-navigator.yml"],
  "properties": {
    "ansible-navigator": {
      "$ref": "#/$defs/AnsibleNavigatorModel"
    }
  },
  "required": ["ansible-navigator"],
  "title": "Ansible-Navigator Configuration Schema",
  "type": "object"
}
