{
  "version": "0.0.1",
  "name": "foobar",
  "resources": {
    "foobar::ModuleResource": {
      "properties": {
        "optionalBool": {
          "type": "boolean"
        }
      },
      "inputProperties": {
        "plainOptionalConst": {
          "type": "string",
          "const": "val",
          "default": "another",
          "plain": true
        },
        "plainOptionalString": {
          "type": "string",
          "default": "buzzer",
          "plain": true
        },
        "plainOptionalBool": {
          "type": "boolean",
          "default": true,
          "plain": true
        },
        "plainOptionalNumber": {
          "type": "number",
          "default": 42,
          "plain": true
        },
        "plainRequiredString": {
          "type": "string",
          "default": "buzzer",
          "plain": true
        },
        "plainRequiredBool": {
          "type": "boolean",
          "default": true,
          "plain": true
        },
        "plainRequiredNumber": {
          "type": "number",
          "default": 42,
          "plain": true
        },
        "optionalConst": {
          "type": "string",
          "const": "val",
          "default": "another"
        },
        "optionalString": {
          "type": "string",
          "default": "buzzer"
        },
        "optionalBool": {
          "type": "boolean",
          "default": true
        },
        "optionalNumber": {
          "type": "number",
          "default": 42
        },
        "optionalEnum": {
          "$ref": "#/types/foobar::EnumThing",
          "default": 8
        },
        "plainRequiredConst": {
          "type": "string",
          "const": "val",
          "default": "another",
          "plain": true
        },
        "requiredString": {
          "type": "string",
          "default": "buzzer"
        },
        "requiredBool": {
          "type": "boolean",
          "default": true
        },
        "requiredNumber": {
          "type": "number",
          "default": 42
        },
        "requiredEnum": {
          "$ref": "#/types/foobar::EnumThing",
          "default": 4
        }
      },
      "requiredInputs": [
        "plainRequiredString",
        "plainRequiredBool",
        "plainRequiredNumber",
        "plainRequiredConst",
        "requiredString",
        "requiredBool",
        "requiredNumber",
        "requiredEnum"
      ],
      "type": "object"
    }
  },
  "types": {
    "foobar::EnumThing": {
      "type": "integer",
      "enum": [
        {
          "value": 4,
          "name": "Four"
        },
        {
          "value": 6,
          "name": "Six"
        },
        {
          "value": 8,
          "name": "Eight"
        }
      ]
    }
  },
  "language": {
    "csharp": {
      "namespaces": {
        "foobar": "FooBar"
      }
    },
    "go": {
      "importBasePath": "plain-and-default/foo",
      "generateExtraInputTypes": true,
      "generics": "side-by-side"
    },
    "nodejs": {
      "dependencies": {
        "@pulumi/pulumi": "^3.12"
      },
      "devDependencies": {
        "typescript": "^3.7.0"
      }
    },
    "python": {}
  }
}