singer_sdk.typing.ObjectType¶
- class singer_sdk.typing.ObjectType[source]¶
- Object type, which wraps one or more named properties. - __init__(*properties, additional_properties=None, pattern_properties=None, **kwargs)[source]¶
- Initialize ObjectType from its list of properties. - Parameters:
- properties (Property) – Zero or more attributes for this JSON object. 
- additional_properties (W | type[W] | bool | None) – A schema to match against unnamed properties in this object, or a boolean indicating if extra properties are allowed. 
- pattern_properties (Mapping[str, W | type[W]] | None) – A dictionary of regex patterns to match against property names, and the schema to match against the values. 
- **kwargs (Any) – Additional keyword arguments to pass to the JSONTypeHelper. 
 
- Return type:
- None 
 - Examples - >>> t = ObjectType( ... Property("name", StringType, required=True), ... Property("age", IntegerType), ... Property("height", NumberType), ... additional_properties=False, ... ) >>> print(t.to_json(indent=2)) { "type": "object", "properties": { "name": { "type": [ "string" ] }, "age": { "type": [ "integer", "null" ] }, "height": { "type": [ "number", "null" ] } }, "required": [ "name" ], "additionalProperties": false } >>> t = ObjectType( ... Property("name", StringType, required=True), ... Property("age", IntegerType), ... Property("height", NumberType), ... additional_properties=StringType, ... ) >>> print(t.to_json(indent=2)) { "type": "object", "properties": { "name": { "type": [ "string" ] }, "age": { "type": [ "integer", "null" ] }, "height": { "type": [ "number", "null" ] } }, "required": [ "name" ], "additionalProperties": { "type": [ "string" ] } }