{
  "version": "0.0.1",
  "name": "example",
  "types": {
    "example::Pet": {
      "properties": {
        "name": {
          "$ref": "/random/v2.3.1/schema.json#/resources/random:index%2FrandomPet:RandomPet"
        },
        "requiredName": {
          "$ref": "/random/v2.3.1/schema.json#/resources/random:index%2FrandomPet:RandomPet"
        },
        "nameArray": {
          "type": "array",
          "items": {
            "$ref": "/random/v2.3.1/schema.json#/resources/random:index%2FrandomPet:RandomPet"
          }
        },
        "requiredNameArray": {
          "type": "array",
          "items": {
            "$ref": "/random/v2.3.1/schema.json#/resources/random:index%2FrandomPet:RandomPet"
          }
        },
        "nameMap": {
          "type": "object",
          "additionalProperties": {
            "$ref": "/random/v2.3.1/schema.json#/resources/random:index%2FrandomPet:RandomPet"
          }
        },
        "requiredNameMap": {
          "type": "object",
          "additionalProperties": {
            "$ref": "/random/v2.3.1/schema.json#/resources/random:index%2FrandomPet:RandomPet"
          }
        },
        "age": {
          "type": "integer"
        }
      },
      "required": ["requiredName", "requiredNameArray", "requiredNameMap"],
      "type": "object"
    }
  },
  "resources": {
    "example::Cat": {
      "properties": {
        "name": {
          "type": "string"
        }
      },
      "inputProperties": {
        "age": {
          "type": "integer"
        },
        "pet": {
          "$ref": "#/types/example::Pet"
        }
      },
      "type": "object"
    },
    "example::Workload": {
      "properties": {
        "pod": {
          "$ref": "/kubernetes/v2.6.3/schema.json#/types/kubernetes:core%2Fv1:Pod"
        }
      },
      "type": "object"
    },
    "example::Component": {
      "properties": {
        "provider": {
          "$ref": "/kubernetes/v2.6.3/schema.json#/provider"
        },
        "securityGroup": {
          "$ref": "/aws/v3.14.0/schema.json#/resources/aws:ec2%2FsecurityGroup:SecurityGroup"
        },
        "storageClasses": {
          "type": "object",
          "additionalProperties": {
            "$ref": "/kubernetes/v2.7.3/schema.json#/resources/kubernetes:storage.k8s.io%2Fv1:StorageClass"
          }
        }
      },
      "inputProperties": {
        "metadata": {
          "$ref": "/kubernetes/v2.6.3/schema.json#/types/kubernetes:meta%2Fv1:ObjectMeta"
        },
        "requiredMetadata": {
          "$ref": "/kubernetes/v2.6.3/schema.json#/types/kubernetes:meta%2Fv1:ObjectMeta"
        },
        "metadataArray": {
          "type": "array",
          "items": {
            "$ref": "/kubernetes/v2.6.3/schema.json#/types/kubernetes:meta%2Fv1:ObjectMeta"
          }
        },
        "requiredMetadataArray": {
          "type": "array",
          "items": {
            "$ref": "/kubernetes/v2.6.3/schema.json#/types/kubernetes:meta%2Fv1:ObjectMeta"
          }
        },
        "metadataMap": {
          "type": "object",
          "additionalProperties": {
            "$ref": "/kubernetes/v2.6.3/schema.json#/types/kubernetes:meta%2Fv1:ObjectMeta"
          }
        },
        "requiredMetadataMap": {
          "type": "object",
          "additionalProperties": {
            "$ref": "/kubernetes/v2.6.3/schema.json#/types/kubernetes:meta%2Fv1:ObjectMeta"
          }
        }
      },
      "required": ["securityGroup"],
      "requiredInputs": ["requiredMetadata", "requiredMetadataArray", "requiredMetadataMap"]
    }
  },
  "functions": {
    "example::argFunction": {
      "inputs": {
        "properties": {
          "name": {
            "$ref": "/random/v2.3.1/schema.json#/resources/random:index%2FrandomPet:RandomPet"
          }
        }
      },
      "outputs": {
        "properties": {
          "age": {
            "type": "integer"
          }
        }
      }
    }
  },
  "language": {
    "csharp": {},
    "go": {
      "generateResourceContainerTypes": true
    },
    "nodejs": {},
    "python": {}
  }
}
