{
  "version": "0.0.1",
  "name": "example",
  "types": {
    "example::Object": {
      "properties": {
        "foo": {
          "$ref": "#/resources/example::Resource"
        },
        "bar": {
          "type": "string"
        },
        "others": {
          "type": "array",
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "$ref": "#/types/example::SomeOtherObject"
            }
          },
          "description": "List of lists of other objects"
        },
        "configs": {
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/types/example::ConfigMap"
          }
        },
        "stillOthers": {
          "type": "object",
          "additionalProperties": {
            "type": "array",
            "items": {
              "type": "object",
              "$ref": "#/types/example::SomeOtherObject"
            }
          },
          "description": "Mapping from string to list of some other object"
        }
      },
      "type": "object"
    },
    "example::OtherResourceOutput": {
      "properties": {
        "foo": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "example::SomeOtherObject": {
      "properties": {
        "baz": {
          "type": "string"
        }
      },
      "type": "object"
    },
    "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"
    },
    "example::ObjectWithNodeOptionalInputs": {
      "properties": {
        "foo": {
          "type": "string"
        },
        "bar": {
          "type": "integer"
        }
      },
      "required": ["foo"],
      "language": {
        "nodejs": {
          "requiredInputs": []
        }
      },
      "type": "object"
    }
  },
  "resources": {
    "example::Resource": {
      "properties": {
        "bar": {
          "type": "string",
          "secret": true
        }
      },
      "inputProperties": {
        "bar": {
          "type": "string",
          "secret": true
        }
      },
      "type": "object"
    },
    "example::OtherResource": {
      "isComponent": true,
      "properties": {
        "foo": {
          "$ref": "#/resources/example::Resource"
        }
      },
      "inputProperties": {
        "foo": {
          "$ref": "#/resources/example::Resource"
        }
      },
      "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"
    },
    "example::TypeUses": {
      "properties": {
        "foo": {
          "$ref": "#/types/example::Object"
        },
        "bar": {
          "$ref": "#/types/example::SomeOtherObject"
        },
        "baz": {
          "$ref": "#/types/example::ObjectWithNodeOptionalInputs"
        }
      },
      "inputProperties": {
        "foo": {
          "$ref": "#/types/example::Object"
        },
        "bar": {
          "$ref": "#/types/example::SomeOtherObject"
        },
        "baz": {
          "$ref": "#/types/example::ObjectWithNodeOptionalInputs"
        }
      },
      "type": "object"
    }
  },
  "functions": {
    "example::argFunction": {
      "inputs": {
        "properties": {
          "arg1": {
            "$ref": "#/resources/example::Resource"
          }
        }
      },
      "outputs": {
        "properties": {
          "result": {
            "$ref": "#/resources/example::Resource"
          }
        }
      }
    },
    "example::overlayFunction": {
      "isOverlay": true,
      "inputs": {
        "properties": {
          "arg1": {
            "$ref": "#/resources/example::Resource"
          }
        }
      },
      "outputs": {
        "properties": {
          "result": {
            "$ref": "#/resources/example::Resource"
          }
        }
      }
    }
  },
  "language": {
    "csharp": {
      "projectReferences": [
         "..\\..\\..\\..\\..\\..\\..\\sdk\\dotnet\\Pulumi\\Pulumi.csproj"
      ],
      "packageReferences": {
        "Pulumi": "3.13"
      }
    },
    "go": {
      "importBasePath": "github.com/pulumi/pulumi/pkg/v3/codegen/internal/test/testdata/simple-resource-schema/go/example"
    },
    "nodejs": {
      "dependencies": {
        "@pulumi/pulumi": "^3.12"
      },
      "devDependencies": {
        "typescript": "^3.7.0"
      }
    },
    "python": {}
  }
}
