{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://catalog.lintel.tools/schemas/schemastore/github-actions-typing/latest.json",
  "title": "GitHub Actions typing",
  "description": "Type information for GitHub Actions\n<https://github.com/typesafegithub/github-actions-typing>",
  "x-lintel": {
    "source": "https://raw.githubusercontent.com/typesafegithub/github-actions-typing/refs/heads/schema-latest/github-actions-typing.schema.json",
    "sourceSha256": "138b340990e5963daef85f00c3651d3c607642ee6a902db98b9f04ab45ed92c7",
    "fileMatch": [
      "action-types.yml",
      "action-types.yaml"
    ],
    "parsers": [
      "yaml"
    ]
  },
  "$ref": "#/$defs/top_level_or_null",
  "$defs": {
    "property_type": {
      "type": "object",
      "properties": {
        "type": {
          "title": "Type",
          "description": "The type of the input or output.\n<https://github.com/typesafegithub/github-actions-typing/blob/main/README.md#available-types>",
          "type": "string",
          "enum": [
            "string",
            "boolean",
            "integer",
            "float",
            "enum",
            "list"
          ]
        }
      },
      "required": [
        "type"
      ],
      "additionalProperties": true
    },
    "list_item_type": {
      "type": "object",
      "properties": {
        "type": {
          "title": "Type",
          "description": "The type of the list item.\n<https://github.com/typesafegithub/github-actions-typing/blob/main/README.md#list>",
          "type": "string",
          "enum": [
            "string",
            "boolean",
            "integer",
            "float",
            "enum"
          ]
        }
      },
      "required": [
        "type"
      ],
      "additionalProperties": true
    },
    "simple_primitive_property": {
      "type": "object",
      "properties": {
        "type": {
          "title": "Type",
          "description": "The type of the input, output, or list item.\n<https://github.com/typesafegithub/github-actions-typing/blob/main/README.md#available-types>",
          "type": "string",
          "enum": [
            "string",
            "boolean",
            "integer",
            "float"
          ]
        }
      },
      "required": [
        "type"
      ],
      "additionalProperties": false
    },
    "integer_with_named_values_property": {
      "type": "object",
      "properties": {
        "type": {
          "title": "Type",
          "description": "The type of the input, output, or list item.\n<https://github.com/typesafegithub/github-actions-typing/blob/main/README.md#available-types>",
          "type": "string",
          "const": "integer"
        },
        "name": {
          "title": "Name",
          "description": "A hint for code generators what name can be used as class name.\n<https://github.com/typesafegithub/github-actions-typing/blob/main/README.md#integer>",
          "type": "string",
          "minLength": 1
        },
        "named-values": {
          "title": "Named Values",
          "description": "A map of special names and their value like \"Infinity\" or \"Never\"\n<https://github.com/typesafegithub/github-actions-typing/blob/main/README.md#integer>",
          "type": "object",
          "additionalProperties": false,
          "minProperties": 1,
          "patternProperties": {
            "^[_a-zA-Z][a-zA-Z0-9_-]*$": {
              "title": "Named Value",
              "description": "A special name to configure the given value.\n<https://github.com/typesafegithub/github-actions-typing/blob/main/README.md#integer>",
              "type": "integer"
            }
          }
        }
      },
      "required": [
        "type",
        "named-values"
      ],
      "additionalProperties": false
    },
    "enum_property": {
      "type": "object",
      "properties": {
        "type": {
          "title": "Type",
          "description": "The type of the input, output, or list item.\n<https://github.com/typesafegithub/github-actions-typing/blob/main/README.md#available-types>",
          "type": "string",
          "const": "enum"
        },
        "name": {
          "title": "Name",
          "description": "A hint for code generators what name can be used as class name.\n<https://github.com/typesafegithub/github-actions-typing/blob/main/README.md#enum>",
          "type": "string",
          "minLength": 1
        },
        "allowed-values": {
          "title": "Allowed Values",
          "description": "The allowed values for the enum property\n<https://github.com/typesafegithub/github-actions-typing/blob/main/README.md#enum>",
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1
          },
          "minItems": 1
        }
      },
      "required": [
        "type",
        "allowed-values"
      ],
      "additionalProperties": false
    },
    "list_property": {
      "type": "object",
      "properties": {
        "type": {
          "title": "Type",
          "description": "The type of the input, output, or list item.\n<https://github.com/typesafegithub/github-actions-typing/blob/main/README.md#available-types>",
          "type": "string",
          "const": "list"
        },
        "separator": {
          "title": "Separator",
          "description": "The separator that is added between the elements when building the string, for example a comma or newline character.\n<https://github.com/typesafegithub/github-actions-typing/blob/main/README.md#list>",
          "type": "string",
          "minLength": 1
        },
        "list-item": {
          "title": "List Item",
          "description": "The specification how list item elements have to look like.\n<https://github.com/typesafegithub/github-actions-typing/blob/main/README.md#list>",
          "type": "object",
          "allOf": [
            {
              "$ref": "#/$defs/list_item_type"
            },
            {
              "anyOf": [
                {
                  "$ref": "#/$defs/simple_primitive_property"
                },
                {
                  "$ref": "#/$defs/integer_with_named_values_property"
                },
                {
                  "$ref": "#/$defs/enum_property"
                }
              ]
            }
          ]
        }
      },
      "required": [
        "type",
        "separator",
        "list-item"
      ],
      "additionalProperties": false
    },
    "property": {
      "allOf": [
        {
          "$ref": "#/$defs/property_type"
        },
        {
          "anyOf": [
            {
              "$ref": "#/$defs/simple_primitive_property"
            },
            {
              "$ref": "#/$defs/integer_with_named_values_property"
            },
            {
              "$ref": "#/$defs/enum_property"
            },
            {
              "$ref": "#/$defs/list_property"
            }
          ]
        }
      ]
    },
    "properties": {
      "type": "object",
      "additionalProperties": false,
      "patternProperties": {
        "^[_a-zA-Z][a-zA-Z0-9_-]*$": {
          "$ref": "#/$defs/property",
          "title": "Input or Output",
          "description": "An input or output of the action.\n<https://github.com/typesafegithub/github-actions-typing/blob/main/README.md>",
          "type": "object"
        }
      }
    },
    "properties_or_null": {
      "anyOf": [
        {
          "type": "null"
        },
        {
          "$ref": "#/$defs/properties"
        }
      ]
    },
    "top_level_or_null": {
      "anyOf": [
        {
          "type": "null"
        },
        {
          "type": "object",
          "properties": {
            "inputs": {
              "$ref": "#/$defs/properties_or_null",
              "title": "Inputs",
              "description": "The inputs of the action.\n<https://github.com/typesafegithub/github-actions-typing/blob/main/README.md>"
            },
            "outputs": {
              "$ref": "#/$defs/properties_or_null",
              "title": "Outputs",
              "description": "The outputs of the action.\n<https://github.com/typesafegithub/github-actions-typing/blob/main/README.md>"
            }
          },
          "additionalProperties": false
        }
      ]
    }
  }
}
