kittycad.models.zoo_product_subscription
Classes
|
A subscription to the modeling app. |
- class kittycad.models.zoo_product_subscription.ZooProductSubscription(**data)[source][source]
A subscription to the modeling app.
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError
][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.self
is explicitly positional-only to allowself
as a field name.- __annotations__ = {'__class_vars__': 'ClassVar[set[str]]', '__private_attributes__': 'ClassVar[Dict[str, ModelPrivateAttr]]', '__pydantic_complete__': 'ClassVar[bool]', '__pydantic_core_schema__': 'ClassVar[CoreSchema]', '__pydantic_custom_init__': 'ClassVar[bool]', '__pydantic_decorators__': 'ClassVar[_decorators.DecoratorInfos]', '__pydantic_extra__': 'dict[str, Any] | None', '__pydantic_fields_set__': 'set[str]', '__pydantic_generic_metadata__': 'ClassVar[_generics.PydanticGenericMetadata]', '__pydantic_parent_namespace__': 'ClassVar[Dict[str, Any] | None]', '__pydantic_post_init__': "ClassVar[None | Literal['model_post_init']]", '__pydantic_private__': 'dict[str, Any] | None', '__pydantic_root_model__': 'ClassVar[bool]', '__pydantic_serializer__': 'ClassVar[SchemaSerializer]', '__pydantic_validator__': 'ClassVar[SchemaValidator | PluggableSchemaValidator]', '__signature__': 'ClassVar[Signature]', 'annual_discount': typing.Optional[int], 'description': <class 'str'>, 'features': typing.Optional[typing.List[kittycad.models.subscription_tier_feature.SubscriptionTierFeature]], 'model_computed_fields': 'ClassVar[Dict[str, ComputedFieldInfo]]', 'model_config': 'ClassVar[ConfigDict]', 'model_fields': 'ClassVar[Dict[str, FieldInfo]]', 'name': <enum 'ModelingAppSubscriptionTierName'>, 'pay_as_you_go_credits': <class 'float'>, 'price': <class 'pydantic.root_model.RootModel[Annotated[Union[OptionFlat, OptionPerUser, OptionEnterprise], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]'>, 'share_links': typing.Optional[typing.List[kittycad.models.modeling_app_share_links.ModelingAppShareLinks]], 'support_tier': <enum 'SupportTier'>, 'training_data_behavior': <enum 'SubscriptionTrainingDataBehavior'>, 'type': <class 'pydantic.root_model.RootModel[Annotated[Union[OptionIndividual, OptionOrganization], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]'>, 'zoo_tools_included': typing.Optional[typing.List[kittycad.models.zoo_tool.ZooTool]]}[source]
- classmethod __class_getitem__(typevar_values)[source]
- Return type:
type
[BaseModel
] |PydanticRecursiveRef
- __class_vars__: ClassVar[set[str]] = {}[source]
The names of the class variables defined on the model.
- classmethod __get_pydantic_core_schema__(source, handler, /)[source]
Hook into generating the model’s CoreSchema.
- Parameters:
source (
type
[BaseModel
]) – The class we are generating a schema for. This will generally be the same as thecls
argument if this is a classmethod.handler (
GetCoreSchemaHandler
) – A callable that calls into Pydantic’s internal CoreSchema generation logic.
- Return type:
Union
[AnySchema
,NoneSchema
,BoolSchema
,IntSchema
,FloatSchema
,DecimalSchema
,StringSchema
,BytesSchema
,DateSchema
,TimeSchema
,DatetimeSchema
,TimedeltaSchema
,LiteralSchema
,EnumSchema
,IsInstanceSchema
,IsSubclassSchema
,CallableSchema
,ListSchema
,TupleSchema
,SetSchema
,FrozenSetSchema
,GeneratorSchema
,DictSchema
,AfterValidatorFunctionSchema
,BeforeValidatorFunctionSchema
,WrapValidatorFunctionSchema
,PlainValidatorFunctionSchema
,WithDefaultSchema
,NullableSchema
,UnionSchema
,TaggedUnionSchema
,ChainSchema
,LaxOrStrictSchema
,JsonOrPythonSchema
,TypedDictSchema
,ModelFieldsSchema
,ModelSchema
,DataclassArgsSchema
,DataclassSchema
,ArgumentsSchema
,CallSchema
,CustomErrorSchema
,JsonSchema
,UrlSchema
,MultiHostUrlSchema
,DefinitionsSchema
,DefinitionReferenceSchema
,UuidSchema
,ComplexSchema
]- Returns:
A
pydantic-core
CoreSchema
.
- classmethod __get_pydantic_json_schema__(core_schema, handler, /)[source]
Hook into generating the model’s JSON schema.
- Parameters:
core_schema (
Union
[AnySchema
,NoneSchema
,BoolSchema
,IntSchema
,FloatSchema
,DecimalSchema
,StringSchema
,BytesSchema
,DateSchema
,TimeSchema
,DatetimeSchema
,TimedeltaSchema
,LiteralSchema
,EnumSchema
,IsInstanceSchema
,IsSubclassSchema
,CallableSchema
,ListSchema
,TupleSchema
,SetSchema
,FrozenSetSchema
,GeneratorSchema
,DictSchema
,AfterValidatorFunctionSchema
,BeforeValidatorFunctionSchema
,WrapValidatorFunctionSchema
,PlainValidatorFunctionSchema
,WithDefaultSchema
,NullableSchema
,UnionSchema
,TaggedUnionSchema
,ChainSchema
,LaxOrStrictSchema
,JsonOrPythonSchema
,TypedDictSchema
,ModelFieldsSchema
,ModelSchema
,DataclassArgsSchema
,DataclassSchema
,ArgumentsSchema
,CallSchema
,CustomErrorSchema
,JsonSchema
,UrlSchema
,MultiHostUrlSchema
,DefinitionsSchema
,DefinitionReferenceSchema
,UuidSchema
,ComplexSchema
]) – Apydantic-core
CoreSchema. You can ignore this argument and call the handler with a new CoreSchema, wrap this CoreSchema ({'type': 'nullable', 'schema': current_schema}
), or just call the handler with the original schema.handler (
GetJsonSchemaHandler
) – Call into Pydantic’s internal JSON schema generation. This will raise apydantic.errors.PydanticInvalidForJsonSchema
if JSON schema generation fails. Since this gets called byBaseModel.model_json_schema
you can override theschema_generator
argument to that function to change JSON schema generation globally for a type.
- Return type:
- Returns:
A JSON schema, as a Python object.
- __init__(**data)[source]
Create a new model by parsing and validating input data from keyword arguments.
Raises [
ValidationError
][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.self
is explicitly positional-only to allowself
as a field name.
- __pretty__(fmt, **kwargs)[source]
Used by devtools (https://python-devtools.helpmanual.io/) to pretty print objects.
- __private_attributes__: ClassVar[Dict[str, ModelPrivateAttr]] = {}[source]
Metadata about the private attributes of the model.
- __pydantic_complete__: ClassVar[bool] = True[source]
Whether model building is completed, or if there are still undefined fields.
- __pydantic_core_schema__: ClassVar[CoreSchema] = {'definitions': [{'cls': <enum 'PlanInterval'>, 'members': [PlanInterval.DAY, PlanInterval.MONTH, PlanInterval.WEEK, PlanInterval.YEAR], 'metadata': {'pydantic_js_functions': [<function GenerateSchema._enum_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.plan_interval.PlanInterval:94675525724528', 'sub_type': 'str', 'type': 'enum'}], 'schema': {'cls': <class 'kittycad.models.zoo_product_subscription.ZooProductSubscription'>, 'config': {'title': 'ZooProductSubscription'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.zoo_product_subscription.ZooProductSubscription'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.zoo_product_subscription.ZooProductSubscription'>>]}, 'ref': 'kittycad.models.zoo_product_subscription.ZooProductSubscription:94675561339200', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'annual_discount': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'type': 'int'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'description': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}, 'features': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'items_schema': {'cls': <class 'kittycad.models.subscription_tier_feature.SubscriptionTierFeature'>, 'config': {'title': 'SubscriptionTierFeature'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.subscription_tier_feature.SubscriptionTierFeature'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.subscription_tier_feature.SubscriptionTierFeature'>>]}, 'ref': 'kittycad.models.subscription_tier_feature.SubscriptionTierFeature:94675525762976', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'info': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'str'}, 'type': 'model-field'}}, 'model_name': 'SubscriptionTierFeature', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'list'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'name': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'ModelingAppSubscriptionTierName'>, 'members': [ModelingAppSubscriptionTierName.FREE, ModelingAppSubscriptionTierName.PRO, ModelingAppSubscriptionTierName.TEAM, ModelingAppSubscriptionTierName.ENTERPRISE], 'metadata': {'pydantic_js_functions': [<function GenerateSchema._enum_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.modeling_app_subscription_tier_name.ModelingAppSubscriptionTierName:94675525758448', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'pay_as_you_go_credits': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'price': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <class 'pydantic.root_model.RootModel[Annotated[Union[OptionFlat, OptionPerUser, OptionEnterprise], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]'>, 'config': {'title': "RootModel[Annotated[Union[OptionFlat, OptionPerUser, OptionEnterprise], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]"}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'pydantic.root_model.RootModel[Annotated[Union[OptionFlat, OptionPerUser, OptionEnterprise], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'pydantic.root_model.RootModel[Annotated[Union[OptionFlat, OptionPerUser, OptionEnterprise], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]'>>]}, 'ref': "pydantic.root_model.RootModel:94675536006880[Annotated[Union[OptionFlat, OptionPerUser, OptionEnterprise], FieldInfo(annotation=NoneType, required=True, discriminator='type')]:139738954405824]", 'root_model': True, 'schema': {'choices': {'enterprise': {'cls': <class 'kittycad.models.subscription_tier_price.OptionEnterprise'>, 'config': {'title': 'OptionEnterprise'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.subscription_tier_price.OptionEnterprise'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.subscription_tier_price.OptionEnterprise'>>]}, 'ref': 'kittycad.models.subscription_tier_price.OptionEnterprise:94675525718400', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'enterprise', 'schema': {'expected': ['enterprise'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'OptionEnterprise', 'type': 'model-fields'}, 'type': 'model'}, 'flat': {'cls': <class 'kittycad.models.subscription_tier_price.OptionFlat'>, 'config': {'title': 'OptionFlat'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.subscription_tier_price.OptionFlat'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.subscription_tier_price.OptionFlat'>>]}, 'ref': 'kittycad.models.subscription_tier_price.OptionFlat:94675525699168', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'interval': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.plan_interval.PlanInterval:94675525724528', 'type': 'definition-ref'}, 'type': 'model-field'}, 'price': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'flat', 'schema': {'expected': ['flat'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'OptionFlat', 'type': 'model-fields'}, 'type': 'model'}, 'per_user': {'cls': <class 'kittycad.models.subscription_tier_price.OptionPerUser'>, 'config': {'title': 'OptionPerUser'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.subscription_tier_price.OptionPerUser'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.subscription_tier_price.OptionPerUser'>>]}, 'ref': 'kittycad.models.subscription_tier_price.OptionPerUser:94675525701312', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'interval': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'schema_ref': 'kittycad.models.plan_interval.PlanInterval:94675525724528', 'type': 'definition-ref'}, 'type': 'model-field'}, 'price': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'float'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'per_user', 'schema': {'expected': ['per_user'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'OptionPerUser', 'type': 'model-fields'}, 'type': 'model'}}, 'discriminator': 'type', 'from_attributes': True, 'metadata': {}, 'strict': False, 'type': 'tagged-union'}, 'type': 'model'}, 'type': 'model-field'}, 'share_links': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'items_schema': {'cls': <enum 'ModelingAppShareLinks'>, 'members': [ModelingAppShareLinks.PUBLIC, ModelingAppShareLinks.PASSWORD_PROTECTED, ModelingAppShareLinks.ORGANIZATION_ONLY], 'metadata': {'pydantic_js_functions': [<function GenerateSchema._enum_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.modeling_app_share_links.ModelingAppShareLinks:94675525738432', 'sub_type': 'str', 'type': 'enum'}, 'type': 'list'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}, 'support_tier': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'SupportTier'>, 'members': [SupportTier.COMMUNITY, SupportTier.STANDARD, SupportTier.PREMIUM, SupportTier.PRIORITY], 'metadata': {'pydantic_js_functions': [<function GenerateSchema._enum_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.support_tier.SupportTier:94675525807008', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'training_data_behavior': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <enum 'SubscriptionTrainingDataBehavior'>, 'members': [SubscriptionTrainingDataBehavior.ALWAYS, SubscriptionTrainingDataBehavior.DEFAULT_ON, SubscriptionTrainingDataBehavior.DEFAULT_OFF], 'metadata': {'pydantic_js_functions': [<function GenerateSchema._enum_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.subscription_training_data_behavior.SubscriptionTrainingDataBehavior:94675525806016', 'sub_type': 'str', 'type': 'enum'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'cls': <class 'pydantic.root_model.RootModel[Annotated[Union[OptionIndividual, OptionOrganization], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]'>, 'config': {'title': "RootModel[Annotated[Union[OptionIndividual, OptionOrganization], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]"}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'pydantic.root_model.RootModel[Annotated[Union[OptionIndividual, OptionOrganization], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'pydantic.root_model.RootModel[Annotated[Union[OptionIndividual, OptionOrganization], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]'>>]}, 'ref': "pydantic.root_model.RootModel:94675536006880[Annotated[Union[OptionIndividual, OptionOrganization], FieldInfo(annotation=NoneType, required=True, discriminator='type')]:139738927868736]", 'root_model': True, 'schema': {'choices': {'individual': {'cls': <class 'kittycad.models.subscription_tier_type.OptionIndividual'>, 'config': {'title': 'OptionIndividual'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.subscription_tier_type.OptionIndividual'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.subscription_tier_type.OptionIndividual'>>]}, 'ref': 'kittycad.models.subscription_tier_type.OptionIndividual:94675538682176', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'individual', 'schema': {'expected': ['individual'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'OptionIndividual', 'type': 'model-fields'}, 'type': 'model'}, 'organization': {'cls': <class 'kittycad.models.subscription_tier_type.OptionOrganization'>, 'config': {'title': 'OptionOrganization'}, 'custom_init': False, 'metadata': {'pydantic_js_annotation_functions': [], 'pydantic_js_functions': [functools.partial(<function modify_model_json_schema>, cls=<class 'kittycad.models.subscription_tier_type.OptionOrganization'>, title=None), <bound method BaseModel.__get_pydantic_json_schema__ of <class 'kittycad.models.subscription_tier_type.OptionOrganization'>>]}, 'ref': 'kittycad.models.subscription_tier_type.OptionOrganization:94675530917072', 'root_model': False, 'schema': {'computed_fields': [], 'fields': {'saml_sso': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'type': 'bool'}, 'type': 'model-field'}, 'type': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': 'organization', 'schema': {'expected': ['organization'], 'type': 'literal'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'OptionOrganization', 'type': 'model-fields'}, 'type': 'model'}}, 'discriminator': 'type', 'from_attributes': True, 'metadata': {}, 'strict': False, 'type': 'tagged-union'}, 'type': 'model'}, 'type': 'model-field'}, 'zoo_tools_included': {'metadata': {'pydantic_js_annotation_functions': [<function get_json_schema_update_func.<locals>.json_schema_update_func>], 'pydantic_js_functions': []}, 'schema': {'default': None, 'schema': {'schema': {'items_schema': {'cls': <enum 'ZooTool'>, 'members': [ZooTool.MODELING_APP, ZooTool.TEXT_TO_CAD, ZooTool.DIFF_CHROME_EXTENSION], 'metadata': {'pydantic_js_functions': [<function GenerateSchema._enum_schema.<locals>.get_json_schema>]}, 'ref': 'kittycad.models.zoo_tool.ZooTool:94675525810384', 'sub_type': 'str', 'type': 'enum'}, 'type': 'list'}, 'type': 'nullable'}, 'type': 'default'}, 'type': 'model-field'}}, 'model_name': 'ZooProductSubscription', 'type': 'model-fields'}, 'type': 'model'}, 'type': 'definitions'}[source]
The core schema of the model.
- __pydantic_custom_init__: ClassVar[bool] = False[source]
Whether the model has a custom
__init__
method.
- __pydantic_decorators__: ClassVar[_decorators.DecoratorInfos] = DecoratorInfos(validators={}, field_validators={}, root_validators={}, field_serializers={}, model_serializers={}, model_validators={}, computed_fields={})[source]
Metadata containing the decorators defined on the model. This replaces
Model.__validators__
andModel.__root_validators__
from Pydantic V1.
- __pydantic_extra__: dict[str, Any] | None[source]
A dictionary containing extra values, if [
extra
][pydantic.config.ConfigDict.extra] is set to'allow'
.
- __pydantic_generic_metadata__: ClassVar[_generics.PydanticGenericMetadata] = {'args': (), 'origin': None, 'parameters': ()}[source]
Metadata for generic models; contains data used for a similar purpose to __args__, __origin__, __parameters__ in typing-module generics. May eventually be replaced by these.
- classmethod __pydantic_init_subclass__(**kwargs)[source]
This is intended to behave just like
__init_subclass__
, but is called byModelMetaclass
only after the class is actually fully initialized. In particular, attributes likemodel_fields
will be present when this is called.This is necessary because
__init_subclass__
will always be called bytype.__new__
, and it would require a prohibitively large refactor to theModelMetaclass
to ensure thattype.__new__
was called in such a manner that the class would already be sufficiently initialized.This will receive the same
kwargs
that would be passed to the standard__init_subclass__
, namely, any kwargs passed to the class definition that aren’t used internally by pydantic.
- __pydantic_parent_namespace__: ClassVar[Dict[str, Any] | None] = None[source]
Parent namespace of the model, used for automatic rebuilding of models.
- __pydantic_post_init__: ClassVar[None | Literal['model_post_init']] = None[source]
The name of the post-init method for the model, if defined.
- __pydantic_private__: dict[str, Any] | None[source]
Values of private attributes set on the model instance.
- __pydantic_root_model__: ClassVar[bool] = False[source]
Whether the model is a [
RootModel
][pydantic.root_model.RootModel].
- __pydantic_serializer__: ClassVar[SchemaSerializer] = SchemaSerializer(serializer=Model( ModelSerializer { class: Py( 0x0000561b5f33d940, ), serializer: Fields( GeneralFieldsSerializer { fields: { "pay_as_you_go_credits": SerField { key_py: Py( 0x00007f1781197530, ), alias: None, alias_py: None, serializer: Some( Float( FloatSerializer { inf_nan_mode: Null, }, ), ), required: true, }, "price": SerField { key_py: Py( 0x00007f1781da9cb0, ), alias: None, alias_py: None, serializer: Some( Model( ModelSerializer { class: Py( 0x0000561b5d1482d0, ), serializer: TaggedUnion( TaggedUnionSerializer { discriminator: LookupKey( Simple { key: "type", py_key: Py( 0x00007f1785a3c5a0, ), path: LookupPath( [ S( "type", Py( 0x00007f1785a3c5a0, ), ), ], ), }, ), lookup: { "per_user": 1, "enterprise": 2, "flat": 0, }, choices: [ Model( ModelSerializer { class: Py( 0x0000561b5d140660, ), serializer: Fields( GeneralFieldsSerializer { fields: { "price": SerField { key_py: Py( 0x00007f1781da9cb0, ), alias: None, alias_py: None, serializer: Some( Float( FloatSerializer { inf_nan_mode: Null, }, ), ), required: true, }, "interval": SerField { key_py: Py( 0x00007f1784afdaf0, ), alias: None, alias_py: None, serializer: Some( Recursive( DefinitionRefSerializer { definition: "...", retry_with_lax_check: false, }, ), ), required: true, }, "type": SerField { key_py: Py( 0x00007f1785a3c5a0, ), alias: None, alias_py: None, serializer: Some( WithDefault( WithDefaultSerializer { default: Default( Py( 0x00007f1783f5aee0, ), ), serializer: Literal( LiteralSerializer { expected_int: {}, expected_str: { "flat", }, expected_py: None, name: "literal['flat']", }, ), }, ), ), required: true, }, }, computed_fields: Some( ComputedFields( [], ), ), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None, }, required_fields: 3, }, ), has_extra: false, root_model: false, name: "OptionFlat", }, ), Model( ModelSerializer { class: Py( 0x0000561b5d140ec0, ), serializer: Fields( GeneralFieldsSerializer { fields: { "price": SerField { key_py: Py( 0x00007f1781da9cb0, ), alias: None, alias_py: None, serializer: Some( Float( FloatSerializer { inf_nan_mode: Null, }, ), ), required: true, }, "interval": SerField { key_py: Py( 0x00007f1784afdaf0, ), alias: None, alias_py: None, serializer: Some( Recursive( DefinitionRefSerializer { definition: "...", retry_with_lax_check: false, }, ), ), required: true, }, "type": SerField { key_py: Py( 0x00007f1785a3c5a0, ), alias: None, alias_py: None, serializer: Some( WithDefault( WithDefaultSerializer { default: Default( Py( 0x00007f17811de2b0, ), ), serializer: Literal( LiteralSerializer { expected_int: {}, expected_str: { "per_user", }, expected_py: None, name: "literal['per_user']", }, ), }, ), ), required: true, }, }, computed_fields: Some( ComputedFields( [], ), ), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None, }, required_fields: 3, }, ), has_extra: false, root_model: false, name: "OptionPerUser", }, ), Model( ModelSerializer { class: Py( 0x0000561b5d145180, ), serializer: Fields( GeneralFieldsSerializer { fields: { "type": SerField { key_py: Py( 0x00007f1785a3c5a0, ), alias: None, alias_py: None, serializer: Some( WithDefault( WithDefaultSerializer { default: Default( Py( 0x00007f17811de3f0, ), ), serializer: Literal( LiteralSerializer { expected_int: {}, expected_str: { "enterprise", }, expected_py: None, name: "literal['enterprise']", }, ), }, ), ), required: true, }, }, computed_fields: Some( ComputedFields( [], ), ), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None, }, required_fields: 1, }, ), has_extra: false, root_model: false, name: "OptionEnterprise", }, ), ], name: "TaggedUnion[OptionFlat, OptionPerUser, OptionEnterprise]", }, ), has_extra: false, root_model: true, name: "RootModel[Annotated[Union[OptionFlat, OptionPerUser, OptionEnterprise], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]", }, ), ), required: true, }, "zoo_tools_included": SerField { key_py: Py( 0x00007f1781197370, ), alias: None, alias_py: None, serializer: Some( WithDefault( WithDefaultSerializer { default: Default( Py( 0x00007f1785947100, ), ), serializer: Nullable( NullableSerializer { serializer: List( ListSerializer { item_serializer: Enum( EnumSerializer { class: Py( 0x0000561b5d15b8d0, ), serializer: Some( Str( StrSerializer, ), ), }, ), filter: SchemaFilter { include: None, exclude: None, }, name: "list[enum]", }, ), }, ), }, ), ), required: true, }, "annual_discount": SerField { key_py: Py( 0x00007f17811996b0, ), alias: None, alias_py: None, serializer: Some( WithDefault( WithDefaultSerializer { default: Default( Py( 0x00007f1785947100, ), ), serializer: Nullable( NullableSerializer { serializer: Int( IntSerializer, ), }, ), }, ), ), required: true, }, "features": SerField { key_py: Py( 0x00007f17829e0a70, ), alias: None, alias_py: None, serializer: Some( WithDefault( WithDefaultSerializer { default: Default( Py( 0x00007f1785947100, ), ), serializer: Nullable( NullableSerializer { serializer: List( ListSerializer { item_serializer: Model( ModelSerializer { class: Py( 0x0000561b5d14ffa0, ), serializer: Fields( GeneralFieldsSerializer { fields: { "info": SerField { key_py: Py( 0x00007f1785a19820, ), alias: None, alias_py: None, serializer: Some( Str( StrSerializer, ), ), required: true, }, }, computed_fields: Some( ComputedFields( [], ), ), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None, }, required_fields: 1, }, ), has_extra: false, root_model: false, name: "SubscriptionTierFeature", }, ), filter: SchemaFilter { include: None, exclude: None, }, name: "list[SubscriptionTierFeature]", }, ), }, ), }, ), ), required: true, }, "share_links": SerField { key_py: Py( 0x00007f17811974b0, ), alias: None, alias_py: None, serializer: Some( WithDefault( WithDefaultSerializer { default: Default( Py( 0x00007f1785947100, ), ), serializer: Nullable( NullableSerializer { serializer: List( ListSerializer { item_serializer: Enum( EnumSerializer { class: Py( 0x0000561b5d149fc0, ), serializer: Some( Str( StrSerializer, ), ), }, ), filter: SchemaFilter { include: None, exclude: None, }, name: "list[enum]", }, ), }, ), }, ), ), required: true, }, "support_tier": SerField { key_py: Py( 0x00007f1781dc9330, ), alias: None, alias_py: None, serializer: Some( Enum( EnumSerializer { class: Py( 0x0000561b5d15aba0, ), serializer: Some( Str( StrSerializer, ), ), }, ), ), required: true, }, "description": SerField { key_py: Py( 0x00007f1784bf86f0, ), alias: None, alias_py: None, serializer: Some( Str( StrSerializer, ), ), required: true, }, "type": SerField { key_py: Py( 0x00007f1785a3c5a0, ), alias: None, alias_py: None, serializer: Some( Model( ModelSerializer { class: Py( 0x0000561b5d1565d0, ), serializer: TaggedUnion( TaggedUnionSerializer { discriminator: LookupKey( Simple { key: "type", py_key: Py( 0x00007f1785a3c5a0, ), path: LookupPath( [ S( "type", Py( 0x00007f1785a3c5a0, ), ), ], ), }, ), lookup: { "individual": 0, "organization": 1, }, choices: [ Model( ModelSerializer { class: Py( 0x0000561b5dda2140, ), serializer: Fields( GeneralFieldsSerializer { fields: { "type": SerField { key_py: Py( 0x00007f1785a3c5a0, ), alias: None, alias_py: None, serializer: Some( WithDefault( WithDefaultSerializer { default: Default( Py( 0x00007f1781199fb0, ), ), serializer: Literal( LiteralSerializer { expected_int: {}, expected_str: { "individual", }, expected_py: None, name: "literal['individual']", }, ), }, ), ), required: true, }, }, computed_fields: Some( ComputedFields( [], ), ), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None, }, required_fields: 1, }, ), has_extra: false, root_model: false, name: "OptionIndividual", }, ), Model( ModelSerializer { class: Py( 0x0000561b5d63a4d0, ), serializer: Fields( GeneralFieldsSerializer { fields: { "type": SerField { key_py: Py( 0x00007f1785a3c5a0, ), alias: None, alias_py: None, serializer: Some( WithDefault( WithDefaultSerializer { default: Default( Py( 0x00007f178479aaf0, ), ), serializer: Literal( LiteralSerializer { expected_int: {}, expected_str: { "organization", }, expected_py: None, name: "literal['organization']", }, ), }, ), ), required: true, }, "saml_sso": SerField { key_py: Py( 0x00007f178119a0b0, ), alias: None, alias_py: None, serializer: Some( Bool( BoolSerializer, ), ), required: true, }, }, computed_fields: Some( ComputedFields( [], ), ), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None, }, required_fields: 2, }, ), has_extra: false, root_model: false, name: "OptionOrganization", }, ), ], name: "TaggedUnion[OptionIndividual, OptionOrganization]", }, ), has_extra: false, root_model: true, name: "RootModel[Annotated[Union[OptionIndividual, OptionOrganization], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]", }, ), ), required: true, }, "name": SerField { key_py: Py( 0x00007f1785a3a388, ), alias: None, alias_py: None, serializer: Some( Enum( EnumSerializer { class: Py( 0x0000561b5d14edf0, ), serializer: Some( Str( StrSerializer, ), ), }, ), ), required: true, }, "training_data_behavior": SerField { key_py: Py( 0x00007f1781197430, ), alias: None, alias_py: None, serializer: Some( Enum( EnumSerializer { class: Py( 0x0000561b5d15a7c0, ), serializer: Some( Str( StrSerializer, ), ), }, ), ), required: true, }, }, computed_fields: Some( ComputedFields( [], ), ), mode: SimpleDict, extra_serializer: None, filter: SchemaFilter { include: None, exclude: None, }, required_fields: 11, }, ), has_extra: false, root_model: false, name: "ZooProductSubscription", }, ), definitions=[Enum(EnumSerializer { class: Py(0x561b5d146970), serializer: Some(Str(StrSerializer)) })])[source]
The
pydantic-core
SchemaSerializer
used to dump instances of the model.
- __pydantic_validator__: ClassVar[SchemaValidator | PluggableSchemaValidator] = SchemaValidator(title="ZooProductSubscription", validator=Model( ModelValidator { revalidate: Never, validator: ModelFields( ModelFieldsValidator { fields: [ Field { name: "annual_discount", lookup_key: Simple { key: "annual_discount", py_key: Py( 0x00007f178066cbb0, ), path: LookupPath( [ S( "annual_discount", Py( 0x00007f17805d5f30, ), ), ], ), }, name_py: Py( 0x00007f17811996b0, ), validator: WithDefault( WithDefaultValidator { default: Default( Py( 0x00007f1785947100, ), ), on_error: Raise, validator: Nullable( NullableValidator { validator: Int( IntValidator { strict: false, }, ), name: "nullable[int]", }, ), validate_default: false, copy_default: false, name: "default[nullable[int]]", undefined: Py( 0x00007f1783902350, ), }, ), frozen: false, }, Field { name: "description", lookup_key: Simple { key: "description", py_key: Py( 0x00007f17805d58f0, ), path: LookupPath( [ S( "description", Py( 0x00007f17803bc630, ), ), ], ), }, name_py: Py( 0x00007f1784bf86f0, ), validator: Str( StrValidator { strict: false, coerce_numbers_to_str: false, }, ), frozen: false, }, Field { name: "features", lookup_key: Simple { key: "features", py_key: Py( 0x00007f17803bc6f0, ), path: LookupPath( [ S( "features", Py( 0x00007f17803bc030, ), ), ], ), }, name_py: Py( 0x00007f17829e0a70, ), validator: WithDefault( WithDefaultValidator { default: Default( Py( 0x00007f1785947100, ), ), on_error: Raise, validator: Nullable( NullableValidator { validator: List( ListValidator { strict: false, item_validator: Some( Model( ModelValidator { revalidate: Never, validator: ModelFields( ModelFieldsValidator { fields: [ Field { name: "info", lookup_key: Simple { key: "info", py_key: Py( 0x00007f17802eef10, ), path: LookupPath( [ S( "info", Py( 0x00007f17802eefa0, ), ), ], ), }, name_py: Py( 0x00007f1785a19820, ), validator: Str( StrValidator { strict: false, coerce_numbers_to_str: false, }, ), frozen: false, }, ], model_name: "SubscriptionTierFeature", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true, }, ), class: Py( 0x0000561b5d14ffa0, ), post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py( 0x00007f1783902350, ), name: "SubscriptionTierFeature", }, ), ), min_length: None, max_length: None, name: OnceLock( "list[SubscriptionTierFeature]", ), fail_fast: false, }, ), name: "nullable[list[SubscriptionTierFeature]]", }, ), validate_default: false, copy_default: false, name: "default[nullable[list[SubscriptionTierFeature]]]", undefined: Py( 0x00007f1783902350, ), }, ), frozen: false, }, Field { name: "name", lookup_key: Simple { key: "name", py_key: Py( 0x00007f17802ef000, ), path: LookupPath( [ S( "name", Py( 0x00007f17802eed90, ), ), ], ), }, name_py: Py( 0x00007f1785a3a388, ), validator: StrEnum( EnumValidator { phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>, class: Py( 0x0000561b5d14edf0, ), lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some( { "free": 0, "team": 2, "pro": 1, "enterprise": 3, }, ), expected_py_dict: None, expected_py_values: None, values: [ Py( 0x00007f17811e4950, ), Py( 0x00007f17811e49b0, ), Py( 0x00007f17811e4a10, ), Py( 0x00007f17811e4a70, ), ], }, missing: None, expected_repr: "'free', 'pro', 'team' or 'enterprise'", strict: false, class_repr: "ModelingAppSubscriptionTierName", name: "str-enum[ModelingAppSubscriptionTierName]", }, ), frozen: false, }, Field { name: "pay_as_you_go_credits", lookup_key: Simple { key: "pay_as_you_go_credits", py_key: Py( 0x00007f17803bc870, ), path: LookupPath( [ S( "pay_as_you_go_credits", Py( 0x00007f17803bfc70, ), ), ], ), }, name_py: Py( 0x00007f1781197530, ), validator: Float( FloatValidator { strict: false, allow_inf_nan: true, }, ), frozen: false, }, Field { name: "price", lookup_key: Simple { key: "price", py_key: Py( 0x00007f17802ef1b0, ), path: LookupPath( [ S( "price", Py( 0x00007f17802ef180, ), ), ], ), }, name_py: Py( 0x00007f1781da9cb0, ), validator: Model( ModelValidator { revalidate: Never, validator: TaggedUnion( TaggedUnionValidator { discriminator: LookupKey( Simple { key: "type", py_key: Py( 0x00007f1785a3c5a0, ), path: LookupPath( [ S( "type", Py( 0x00007f1785a3c5a0, ), ), ], ), }, ), lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some( { "flat": 0, "enterprise": 2, "per_user": 1, }, ), expected_py_dict: None, expected_py_values: None, values: [ Model( ModelValidator { revalidate: Never, validator: ModelFields( ModelFieldsValidator { fields: [ Field { name: "interval", lookup_key: Simple { key: "interval", py_key: Py( 0x00007f17803bfbb0, ), path: LookupPath( [ S( "interval", Py( 0x00007f17803bfbf0, ), ), ], ), }, name_py: Py( 0x00007f1784afdaf0, ), validator: DefinitionRef( DefinitionRefValidator { definition: "...", }, ), frozen: false, }, Field { name: "price", lookup_key: Simple { key: "price", py_key: Py( 0x00007f17802eed30, ), path: LookupPath( [ S( "price", Py( 0x00007f17802ef030, ), ), ], ), }, name_py: Py( 0x00007f1781da9cb0, ), validator: Float( FloatValidator { strict: false, allow_inf_nan: true, }, ), frozen: false, }, Field { name: "type", lookup_key: Simple { key: "type", py_key: Py( 0x00007f17802eee80, ), path: LookupPath( [ S( "type", Py( 0x00007f17802eef70, ), ), ], ), }, name_py: Py( 0x00007f1785a3c5a0, ), validator: WithDefault( WithDefaultValidator { default: Default( Py( 0x00007f1783f5aee0, ), ), on_error: Raise, validator: Literal( LiteralValidator { lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some( { "flat": 0, }, ), expected_py_dict: None, expected_py_values: None, values: [ Py( 0x00007f1783f5aee0, ), ], }, expected_repr: "'flat'", name: "literal['flat']", }, ), validate_default: false, copy_default: false, name: "default[literal['flat']]", undefined: Py( 0x00007f1783902350, ), }, ), frozen: false, }, ], model_name: "OptionFlat", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true, }, ), class: Py( 0x0000561b5d140660, ), post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py( 0x00007f1783902350, ), name: "OptionFlat", }, ), Model( ModelValidator { revalidate: Never, validator: ModelFields( ModelFieldsValidator { fields: [ Field { name: "interval", lookup_key: Simple { key: "interval", py_key: Py( 0x00007f17803bf4b0, ), path: LookupPath( [ S( "interval", Py( 0x00007f17803bf770, ), ), ], ), }, name_py: Py( 0x00007f1784afdaf0, ), validator: DefinitionRef( DefinitionRefValidator { definition: "...", }, ), frozen: false, }, Field { name: "price", lookup_key: Simple { key: "price", py_key: Py( 0x00007f17802eefd0, ), path: LookupPath( [ S( "price", Py( 0x00007f17802eee20, ), ), ], ), }, name_py: Py( 0x00007f1781da9cb0, ), validator: Float( FloatValidator { strict: false, allow_inf_nan: true, }, ), frozen: false, }, Field { name: "type", lookup_key: Simple { key: "type", py_key: Py( 0x00007f17802eee50, ), path: LookupPath( [ S( "type", Py( 0x00007f17802eeeb0, ), ), ], ), }, name_py: Py( 0x00007f1785a3c5a0, ), validator: WithDefault( WithDefaultValidator { default: Default( Py( 0x00007f17811de2b0, ), ), on_error: Raise, validator: Literal( LiteralValidator { lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some( { "per_user": 0, }, ), expected_py_dict: None, expected_py_values: None, values: [ Py( 0x00007f17811de2b0, ), ], }, expected_repr: "'per_user'", name: "literal['per_user']", }, ), validate_default: false, copy_default: false, name: "default[literal['per_user']]", undefined: Py( 0x00007f1783902350, ), }, ), frozen: false, }, ], model_name: "OptionPerUser", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true, }, ), class: Py( 0x0000561b5d140ec0, ), post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py( 0x00007f1783902350, ), name: "OptionPerUser", }, ), Model( ModelValidator { revalidate: Never, validator: ModelFields( ModelFieldsValidator { fields: [ Field { name: "type", lookup_key: Simple { key: "type", py_key: Py( 0x00007f17802ef240, ), path: LookupPath( [ S( "type", Py( 0x00007f17802ef270, ), ), ], ), }, name_py: Py( 0x00007f1785a3c5a0, ), validator: WithDefault( WithDefaultValidator { default: Default( Py( 0x00007f17811de3f0, ), ), on_error: Raise, validator: Literal( LiteralValidator { lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some( { "enterprise": 0, }, ), expected_py_dict: None, expected_py_values: None, values: [ Py( 0x00007f17811de3f0, ), ], }, expected_repr: "'enterprise'", name: "literal['enterprise']", }, ), validate_default: false, copy_default: false, name: "default[literal['enterprise']]", undefined: Py( 0x00007f1783902350, ), }, ), frozen: false, }, ], model_name: "OptionEnterprise", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true, }, ), class: Py( 0x0000561b5d145180, ), post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py( 0x00007f1783902350, ), name: "OptionEnterprise", }, ), ], }, from_attributes: true, strict: false, custom_error: None, tags_repr: "'flat', 'per_user', 'enterprise'", discriminator_repr: "'type'", name: "tagged-union[OptionFlat,OptionPerUser,OptionEnterprise]", }, ), class: Py( 0x0000561b5d1482d0, ), post_init: None, frozen: false, custom_init: false, root_model: true, undefined: Py( 0x00007f1783902350, ), name: "RootModel[Annotated[Union[OptionFlat, OptionPerUser, OptionEnterprise], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]", }, ), frozen: false, }, Field { name: "share_links", lookup_key: Simple { key: "share_links", py_key: Py( 0x00007f17803bf4f0, ), path: LookupPath( [ S( "share_links", Py( 0x00007f17803be4b0, ), ), ], ), }, name_py: Py( 0x00007f17811974b0, ), validator: WithDefault( WithDefaultValidator { default: Default( Py( 0x00007f1785947100, ), ), on_error: Raise, validator: Nullable( NullableValidator { validator: List( ListValidator { strict: false, item_validator: Some( StrEnum( EnumValidator { phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>, class: Py( 0x0000561b5d149fc0, ), lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some( { "password_protected": 1, "organization_only": 2, "public": 0, }, ), expected_py_dict: None, expected_py_values: None, values: [ Py( 0x00007f17811e46b0, ), Py( 0x00007f17811e4710, ), Py( 0x00007f17811e4770, ), ], }, missing: None, expected_repr: "'public', 'password_protected' or 'organization_only'", strict: false, class_repr: "ModelingAppShareLinks", name: "str-enum[ModelingAppShareLinks]", }, ), ), min_length: None, max_length: None, name: OnceLock( "list[str-enum[ModelingAppShareLinks]]", ), fail_fast: false, }, ), name: "nullable[list[str-enum[ModelingAppShareLinks]]]", }, ), validate_default: false, copy_default: false, name: "default[nullable[list[str-enum[ModelingAppShareLinks]]]]", undefined: Py( 0x00007f1783902350, ), }, ), frozen: false, }, Field { name: "support_tier", lookup_key: Simple { key: "support_tier", py_key: Py( 0x00007f17803bcef0, ), path: LookupPath( [ S( "support_tier", Py( 0x00007f17803bea30, ), ), ], ), }, name_py: Py( 0x00007f1781dc9330, ), validator: StrEnum( EnumValidator { phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>, class: Py( 0x0000561b5d15aba0, ), lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some( { "priority": 3, "community": 0, "standard": 1, "premium": 2, }, ), expected_py_dict: None, expected_py_values: None, values: [ Py( 0x00007f17811e5130, ), Py( 0x00007f17811e51f0, ), Py( 0x00007f17811e5250, ), Py( 0x00007f17811e52b0, ), ], }, missing: None, expected_repr: "'community', 'standard', 'premium' or 'priority'", strict: false, class_repr: "SupportTier", name: "str-enum[SupportTier]", }, ), frozen: false, }, Field { name: "training_data_behavior", lookup_key: Simple { key: "training_data_behavior", py_key: Py( 0x00007f17803bd3f0, ), path: LookupPath( [ S( "training_data_behavior", Py( 0x00007f17803bf230, ), ), ], ), }, name_py: Py( 0x00007f1781197430, ), validator: StrEnum( EnumValidator { phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>, class: Py( 0x0000561b5d15a7c0, ), lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some( { "default_on": 1, "default_off": 2, "always": 0, }, ), expected_py_dict: None, expected_py_values: None, values: [ Py( 0x00007f17811e4e90, ), Py( 0x00007f17811e4f50, ), Py( 0x00007f17811e4fb0, ), ], }, missing: None, expected_repr: "'always', 'default_on' or 'default_off'", strict: false, class_repr: "SubscriptionTrainingDataBehavior", name: "str-enum[SubscriptionTrainingDataBehavior]", }, ), frozen: false, }, Field { name: "type", lookup_key: Simple { key: "type", py_key: Py( 0x00007f17802ef0c0, ), path: LookupPath( [ S( "type", Py( 0x00007f17802ef210, ), ), ], ), }, name_py: Py( 0x00007f1785a3c5a0, ), validator: Model( ModelValidator { revalidate: Never, validator: TaggedUnion( TaggedUnionValidator { discriminator: LookupKey( Simple { key: "type", py_key: Py( 0x00007f1785a3c5a0, ), path: LookupPath( [ S( "type", Py( 0x00007f1785a3c5a0, ), ), ], ), }, ), lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some( { "individual": 0, "organization": 1, }, ), expected_py_dict: None, expected_py_values: None, values: [ Model( ModelValidator { revalidate: Never, validator: ModelFields( ModelFieldsValidator { fields: [ Field { name: "type", lookup_key: Simple { key: "type", py_key: Py( 0x00007f17802ef090, ), path: LookupPath( [ S( "type", Py( 0x00007f17802ef120, ), ), ], ), }, name_py: Py( 0x00007f1785a3c5a0, ), validator: WithDefault( WithDefaultValidator { default: Default( Py( 0x00007f1781199fb0, ), ), on_error: Raise, validator: Literal( LiteralValidator { lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some( { "individual": 0, }, ), expected_py_dict: None, expected_py_values: None, values: [ Py( 0x00007f1781199fb0, ), ], }, expected_repr: "'individual'", name: "literal['individual']", }, ), validate_default: false, copy_default: false, name: "default[literal['individual']]", undefined: Py( 0x00007f1783902350, ), }, ), frozen: false, }, ], model_name: "OptionIndividual", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true, }, ), class: Py( 0x0000561b5dda2140, ), post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py( 0x00007f1783902350, ), name: "OptionIndividual", }, ), Model( ModelValidator { revalidate: Never, validator: ModelFields( ModelFieldsValidator { fields: [ Field { name: "saml_sso", lookup_key: Simple { key: "saml_sso", py_key: Py( 0x00007f17803bed70, ), path: LookupPath( [ S( "saml_sso", Py( 0x00007f17803be7f0, ), ), ], ), }, name_py: Py( 0x00007f178119a0b0, ), validator: Bool( BoolValidator { strict: false, }, ), frozen: false, }, Field { name: "type", lookup_key: Simple { key: "type", py_key: Py( 0x00007f17802eef40, ), path: LookupPath( [ S( "type", Py( 0x00007f17802eeee0, ), ), ], ), }, name_py: Py( 0x00007f1785a3c5a0, ), validator: WithDefault( WithDefaultValidator { default: Default( Py( 0x00007f178479aaf0, ), ), on_error: Raise, validator: Literal( LiteralValidator { lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some( { "organization": 0, }, ), expected_py_dict: None, expected_py_values: None, values: [ Py( 0x00007f178479aaf0, ), ], }, expected_repr: "'organization'", name: "literal['organization']", }, ), validate_default: false, copy_default: false, name: "default[literal['organization']]", undefined: Py( 0x00007f1783902350, ), }, ), frozen: false, }, ], model_name: "OptionOrganization", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true, }, ), class: Py( 0x0000561b5d63a4d0, ), post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py( 0x00007f1783902350, ), name: "OptionOrganization", }, ), ], }, from_attributes: true, strict: false, custom_error: None, tags_repr: "'individual', 'organization'", discriminator_repr: "'type'", name: "tagged-union[OptionIndividual,OptionOrganization]", }, ), class: Py( 0x0000561b5d1565d0, ), post_init: None, frozen: false, custom_init: false, root_model: true, undefined: Py( 0x00007f1783902350, ), name: "RootModel[Annotated[Union[OptionIndividual, OptionOrganization], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]", }, ), frozen: false, }, Field { name: "zoo_tools_included", lookup_key: Simple { key: "zoo_tools_included", py_key: Py( 0x00007f17803be5b0, ), path: LookupPath( [ S( "zoo_tools_included", Py( 0x00007f17803bd630, ), ), ], ), }, name_py: Py( 0x00007f1781197370, ), validator: WithDefault( WithDefaultValidator { default: Default( Py( 0x00007f1785947100, ), ), on_error: Raise, validator: Nullable( NullableValidator { validator: List( ListValidator { strict: false, item_validator: Some( StrEnum( EnumValidator { phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>, class: Py( 0x0000561b5d15b8d0, ), lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some( { "diff_chrome_extension": 2, "text_to_cad": 1, "modeling_app": 0, }, ), expected_py_dict: None, expected_py_values: None, values: [ Py( 0x00007f17811e5190, ), Py( 0x00007f17811e5310, ), Py( 0x00007f17811e5370, ), ], }, missing: None, expected_repr: "'modeling_app', 'text_to_cad' or 'diff_chrome_extension'", strict: false, class_repr: "ZooTool", name: "str-enum[ZooTool]", }, ), ), min_length: None, max_length: None, name: OnceLock( "list[str-enum[ZooTool]]", ), fail_fast: false, }, ), name: "nullable[list[str-enum[ZooTool]]]", }, ), validate_default: false, copy_default: false, name: "default[nullable[list[str-enum[ZooTool]]]]", undefined: Py( 0x00007f1783902350, ), }, ), frozen: false, }, ], model_name: "ZooProductSubscription", extra_behavior: Ignore, extras_validator: None, strict: false, from_attributes: false, loc_by_alias: true, }, ), class: Py( 0x0000561b5f33d940, ), post_init: None, frozen: false, custom_init: false, root_model: false, undefined: Py( 0x00007f1783902350, ), name: "ZooProductSubscription", }, ), definitions=[StrEnum(EnumValidator { phantom: PhantomData<_pydantic_core::validators::enum_::StrEnumValidator>, class: Py(0x561b5d146970), lookup: LiteralLookup { expected_bool: None, expected_int: None, expected_str: Some({"year": 3, "day": 0, "month": 1, "week": 2}), expected_py_dict: None, expected_py_values: None, values: [Py(0x7f178138ff50), Py(0x7f178138ffb0), Py(0x7f17811e4050), Py(0x7f17811e40b0)] }, missing: None, expected_repr: "'day', 'month', 'week' or 'year'", strict: false, class_repr: "PlanInterval", name: "str-enum[PlanInterval]" })], cache_strings=True)[source]
The
pydantic-core
SchemaValidator
used to validate instances of the model.
- __rich_repr__()[source]
Used by Rich (https://rich.readthedocs.io/en/stable/pretty.html) to pretty print objects.
- __signature__: ClassVar[Signature] = <Signature (*, annual_discount: Optional[int] = None, description: str, features: Optional[List[kittycad.models.subscription_tier_feature.SubscriptionTierFeature]] = None, name: kittycad.models.modeling_app_subscription_tier_name.ModelingAppSubscriptionTierName, pay_as_you_go_credits: float, price: pydantic.root_model.RootModel[Annotated[Union[OptionFlat, OptionPerUser, OptionEnterprise], FieldInfo(annotation=NoneType, required=True, discriminator='type')]], share_links: Optional[List[kittycad.models.modeling_app_share_links.ModelingAppShareLinks]] = None, support_tier: kittycad.models.support_tier.SupportTier, training_data_behavior: kittycad.models.subscription_training_data_behavior.SubscriptionTrainingDataBehavior, type: pydantic.root_model.RootModel[Annotated[Union[OptionIndividual, OptionOrganization], FieldInfo(annotation=NoneType, required=True, discriminator='type')]], zoo_tools_included: Optional[List[kittycad.models.zoo_tool.ZooTool]] = None) -> None>[source]
The synthesized
__init__
[Signature
][inspect.Signature] of the model.
- __slots__ = ('__dict__', '__pydantic_fields_set__', '__pydantic_extra__', '__pydantic_private__')[source]
- copy(*, include=None, exclude=None, update=None, deep=False)[source]
Returns a copy of the model.
- !!! warning “Deprecated”
This method is now deprecated; use
model_copy
instead.
If you need
include
orexclude
, use:`py data = self.model_dump(include=include, exclude=exclude, round_trip=True) data = {**data, **(update or {})} copied = self.model_validate(data) `
- Parameters:
include – Optional set or mapping specifying which fields to include in the copied model.
exclude – Optional set or mapping specifying which fields to exclude in the copied model.
update – Optional dictionary of field-value pairs to override field values in the copied model.
deep – If True, the values of fields that are Pydantic models will be deep-copied.
- Returns:
A copy of the model with included, excluded and updated fields as specified.
- dict(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False)[source]
-
features:
Optional
[List
[SubscriptionTierFeature
]][source]
- json(*, include=None, exclude=None, by_alias=False, exclude_unset=False, exclude_defaults=False, exclude_none=False, encoder=PydanticUndefined, models_as_dict=PydanticUndefined, **dumps_kwargs)[source]
- Return type:
- model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}[source]
A dictionary of computed field names and their corresponding
ComputedFieldInfo
objects.
- model_config: ClassVar[ConfigDict] = {'protected_namespaces': ()}[source]
Configuration for the model, should be a dictionary conforming to [
ConfigDict
][pydantic.config.ConfigDict].
- classmethod model_construct(_fields_set=None, **values)[source]
Creates a new instance of the
Model
class with validated data.Creates a new model setting
__dict__
and__pydantic_fields_set__
from trusted or pre-validated data. Default values are respected, but no other validation is performed.- !!! note
model_construct()
generally respects themodel_config.extra
setting on the provided model. That is, ifmodel_config.extra == 'allow'
, then all extra passed values are added to the model instance’s__dict__
and__pydantic_extra__
fields. Ifmodel_config.extra == 'ignore'
(the default), then all extra passed values are ignored. Because no validation is performed with a call tomodel_construct()
, havingmodel_config.extra == 'forbid'
does not result in an error if extra values are passed, but they will be ignored.
- Parameters:
_fields_set (
set
[str
] |None
) – A set of field names that were originally explicitly set during instantiation. If provided, this is directly used for the [model_fields_set
][pydantic.BaseModel.model_fields_set] attribute. Otherwise, the field names from thevalues
argument will be used.values (
Any
) – Trusted or pre-validated data dictionary.
- Return type:
Self
- Returns:
A new instance of the
Model
class with validated data.
- model_copy(*, update=None, deep=False)[source]
Usage docs: https://docs.pydantic.dev/2.9/concepts/serialization/#model_copy
Returns a copy of the model.
- model_dump(*, mode='python', include=None, exclude=None, context=None, by_alias