{
  "version": "0.0.1",
  "name": "example",
  "types": {
    "example::ConfigMap": {
      "properties": {
        "config": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "example::EnumOverlay": {
      "type": "string",
      "enum": [
        {
          "name": "SomeEnumValue",
          "value": "SOME_ENUM_VALUE"
        }
      ],
      "isOverlay": true
    },
    "example::ConfigMapOverlay": {
      "isOverlay": true,
      "properties": {
        "config": {
          "type": "string"
        }
      },
      "type": "object"
    }
  },
  "resources": {
    "example::Resource": {
      "properties": {
        "foo": {
          "$ref": "#/types/example::ConfigMapOverlay"
        },
        "bar": {
          "$ref": "#/types/example::EnumOverlay"
        }
      },
      "inputProperties": {
        "foo": {
          "$ref": "#/types/example::ConfigMapOverlay"
        },
        "bar": {
          "$ref": "#/types/example::EnumOverlay"
        }
      },
      "type": "object"
    },
    "example::OverlayResource": {
      "isOverlay": true,
      "properties": {
        "foo": {
          "$ref": "#/types/example::ConfigMapOverlay"
        },
        "bar": {
          "$ref": "#/types/example::EnumOverlay"
        }
      },
      "inputProperties": {
        "foo": {
          "$ref": "#/types/example::ConfigMapOverlay"
        },
        "bar": {
          "$ref": "#/types/example::EnumOverlay"
        }
      },
      "type": "object"
    }
  },
  "functions": {
    "example::Function": {
      "inputs": {
        "properties": {
          "arg1": {
            "type": "string"
          }
        }
      },
      "outputs": {
        "properties": {
          "result": {
            "type": "string"
          }
        }
      }
    },
    "example::OverlayFunction": {
      "isOverlay": true,
      "inputs": {
        "properties": {
          "arg1": {
            "type": "string"
          }
        }
      },
      "outputs": {
        "properties": {
          "result": {
            "type": "string"
          }
        }
      }
    }
  }
}