diff --git a/openapi/schemas/audience.openapi.json b/openapi/schemas/audience.openapi.json index d720998ddd..8e5d96e842 100644 --- a/openapi/schemas/audience.openapi.json +++ b/openapi/schemas/audience.openapi.json @@ -2439,6 +2439,13 @@ } } }, + "DeviceType": { + "enum": [ + "Unknown", + "Phone", + "Tablet" + ] + }, "ExampleBoxShape": { "type": "object", "properties": { @@ -3381,6 +3388,9 @@ { "$ref": "#/components/schemas/IAudienceFilterDemographicAudienceFilter" }, + { + "$ref": "#/components/schemas/IAudienceFilterDeviceAudienceFilter" + }, { "$ref": "#/components/schemas/IAudienceFilterLanguageAudienceFilter" }, @@ -3397,6 +3407,7 @@ "AndFilter": "#/components/schemas/IAudienceFilterAndAudienceFilter", "CountryFilter": "#/components/schemas/IAudienceFilterCountryAudienceFilter", "DemographicFilter": "#/components/schemas/IAudienceFilterDemographicAudienceFilter", + "DeviceFilter": "#/components/schemas/IAudienceFilterDeviceAudienceFilter", "LanguageFilter": "#/components/schemas/IAudienceFilterLanguageAudienceFilter", "NotFilter": "#/components/schemas/IAudienceFilterNotAudienceFilter", "OrFilter": "#/components/schemas/IAudienceFilterOrAudienceFilter" @@ -3467,6 +3478,26 @@ } } }, + "IAudienceFilterDeviceAudienceFilter": { + "required": [ + "deviceTypes", + "_t" + ], + "properties": { + "_t": { + "enum": [ + "DeviceFilter" + ], + "type": "string" + }, + "deviceTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeviceType" + } + } + } + }, "IAudienceFilterLanguageAudienceFilter": { "required": [ "languages", diff --git a/openapi/schemas/rapidata.filtered.openapi.json b/openapi/schemas/rapidata.filtered.openapi.json index 5f513265b4..573d328d49 100644 --- a/openapi/schemas/rapidata.filtered.openapi.json +++ b/openapi/schemas/rapidata.filtered.openapi.json @@ -33840,6 +33840,13 @@ } } }, + "DeviceType": { + "enum": [ + "Unknown", + "Phone", + "Tablet" + ] + }, "ExampleBoxShape": { "type": "object", "properties": { @@ -34782,6 +34789,9 @@ { "$ref": "#/components/schemas/IAudienceFilterDemographicAudienceFilter" }, + { + "$ref": "#/components/schemas/IAudienceFilterDeviceAudienceFilter" + }, { "$ref": "#/components/schemas/IAudienceFilterLanguageAudienceFilter" }, @@ -34798,6 +34808,7 @@ "AndFilter": "#/components/schemas/IAudienceFilterAndAudienceFilter", "CountryFilter": "#/components/schemas/IAudienceFilterCountryAudienceFilter", "DemographicFilter": "#/components/schemas/IAudienceFilterDemographicAudienceFilter", + "DeviceFilter": "#/components/schemas/IAudienceFilterDeviceAudienceFilter", "LanguageFilter": "#/components/schemas/IAudienceFilterLanguageAudienceFilter", "NotFilter": "#/components/schemas/IAudienceFilterNotAudienceFilter", "OrFilter": "#/components/schemas/IAudienceFilterOrAudienceFilter" @@ -34868,6 +34879,26 @@ } } }, + "IAudienceFilterDeviceAudienceFilter": { + "required": [ + "deviceTypes", + "_t" + ], + "properties": { + "_t": { + "enum": [ + "DeviceFilter" + ], + "type": "string" + }, + "deviceTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeviceType" + } + } + } + }, "IAudienceFilterLanguageAudienceFilter": { "required": [ "languages", @@ -36364,13 +36395,6 @@ } } }, - "DeviceType": { - "enum": [ - "Unknown", - "Phone", - "Tablet" - ] - }, "GetBoostInsightsEndpoint_AudienceOutput": { "required": [ "externalAudienceId", diff --git a/openapi/schemas/rapidata.openapi.json b/openapi/schemas/rapidata.openapi.json index d77ea18e7d..d5dc9715dd 100644 --- a/openapi/schemas/rapidata.openapi.json +++ b/openapi/schemas/rapidata.openapi.json @@ -35548,6 +35548,13 @@ } } }, + "DeviceType": { + "enum": [ + "Unknown", + "Phone", + "Tablet" + ] + }, "ExampleBoxShape": { "type": "object", "properties": { @@ -36490,6 +36497,9 @@ { "$ref": "#/components/schemas/IAudienceFilterDemographicAudienceFilter" }, + { + "$ref": "#/components/schemas/IAudienceFilterDeviceAudienceFilter" + }, { "$ref": "#/components/schemas/IAudienceFilterLanguageAudienceFilter" }, @@ -36506,6 +36516,7 @@ "AndFilter": "#/components/schemas/IAudienceFilterAndAudienceFilter", "CountryFilter": "#/components/schemas/IAudienceFilterCountryAudienceFilter", "DemographicFilter": "#/components/schemas/IAudienceFilterDemographicAudienceFilter", + "DeviceFilter": "#/components/schemas/IAudienceFilterDeviceAudienceFilter", "LanguageFilter": "#/components/schemas/IAudienceFilterLanguageAudienceFilter", "NotFilter": "#/components/schemas/IAudienceFilterNotAudienceFilter", "OrFilter": "#/components/schemas/IAudienceFilterOrAudienceFilter" @@ -36576,6 +36587,26 @@ } } }, + "IAudienceFilterDeviceAudienceFilter": { + "required": [ + "deviceTypes", + "_t" + ], + "properties": { + "_t": { + "enum": [ + "DeviceFilter" + ], + "type": "string" + }, + "deviceTypes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/DeviceType" + } + } + } + }, "IAudienceFilterLanguageAudienceFilter": { "required": [ "languages", @@ -38098,13 +38129,6 @@ } } }, - "DeviceType": { - "enum": [ - "Unknown", - "Phone", - "Tablet" - ] - }, "GetBoostInsightsEndpoint_AudienceOutput": { "required": [ "externalAudienceId", diff --git a/src/rapidata/api_client/models/i_audience_filter.py b/src/rapidata/api_client/models/i_audience_filter.py index 63ea3287c9..9fd9c53146 100644 --- a/src/rapidata/api_client/models/i_audience_filter.py +++ b/src/rapidata/api_client/models/i_audience_filter.py @@ -18,13 +18,14 @@ from typing import Any, List, Optional from rapidata.api_client.models.i_audience_filter_country_audience_filter import IAudienceFilterCountryAudienceFilter from rapidata.api_client.models.i_audience_filter_demographic_audience_filter import IAudienceFilterDemographicAudienceFilter +from rapidata.api_client.models.i_audience_filter_device_audience_filter import IAudienceFilterDeviceAudienceFilter from rapidata.api_client.models.i_audience_filter_language_audience_filter import IAudienceFilterLanguageAudienceFilter from pydantic import StrictStr, Field from rapidata.api_client.lazy_model import LazyValidatedModel from typing import Union, List, Set, Optional, Dict from typing_extensions import Literal, Self -IAUDIENCEFILTER_ONE_OF_SCHEMAS = ["IAudienceFilterAndAudienceFilter", "IAudienceFilterCountryAudienceFilter", "IAudienceFilterDemographicAudienceFilter", "IAudienceFilterLanguageAudienceFilter", "IAudienceFilterNotAudienceFilter", "IAudienceFilterOrAudienceFilter"] +IAUDIENCEFILTER_ONE_OF_SCHEMAS = ["IAudienceFilterAndAudienceFilter", "IAudienceFilterCountryAudienceFilter", "IAudienceFilterDemographicAudienceFilter", "IAudienceFilterDeviceAudienceFilter", "IAudienceFilterLanguageAudienceFilter", "IAudienceFilterNotAudienceFilter", "IAudienceFilterOrAudienceFilter"] class IAudienceFilter(LazyValidatedModel): """ @@ -36,14 +37,16 @@ class IAudienceFilter(LazyValidatedModel): oneof_schema_2_validator: Optional[IAudienceFilterCountryAudienceFilter] = None # data type: IAudienceFilterDemographicAudienceFilter oneof_schema_3_validator: Optional[IAudienceFilterDemographicAudienceFilter] = None + # data type: IAudienceFilterDeviceAudienceFilter + oneof_schema_4_validator: Optional[IAudienceFilterDeviceAudienceFilter] = None # data type: IAudienceFilterLanguageAudienceFilter - oneof_schema_4_validator: Optional[IAudienceFilterLanguageAudienceFilter] = None + oneof_schema_5_validator: Optional[IAudienceFilterLanguageAudienceFilter] = None # data type: IAudienceFilterNotAudienceFilter - oneof_schema_5_validator: Optional[IAudienceFilterNotAudienceFilter] = None + oneof_schema_6_validator: Optional[IAudienceFilterNotAudienceFilter] = None # data type: IAudienceFilterOrAudienceFilter - oneof_schema_6_validator: Optional[IAudienceFilterOrAudienceFilter] = None - actual_instance: Optional[Union[IAudienceFilterAndAudienceFilter, IAudienceFilterCountryAudienceFilter, IAudienceFilterDemographicAudienceFilter, IAudienceFilterLanguageAudienceFilter, IAudienceFilterNotAudienceFilter, IAudienceFilterOrAudienceFilter]] = None - one_of_schemas: Set[str] = { "IAudienceFilterAndAudienceFilter", "IAudienceFilterCountryAudienceFilter", "IAudienceFilterDemographicAudienceFilter", "IAudienceFilterLanguageAudienceFilter", "IAudienceFilterNotAudienceFilter", "IAudienceFilterOrAudienceFilter" } + oneof_schema_7_validator: Optional[IAudienceFilterOrAudienceFilter] = None + actual_instance: Optional[Union[IAudienceFilterAndAudienceFilter, IAudienceFilterCountryAudienceFilter, IAudienceFilterDemographicAudienceFilter, IAudienceFilterDeviceAudienceFilter, IAudienceFilterLanguageAudienceFilter, IAudienceFilterNotAudienceFilter, IAudienceFilterOrAudienceFilter]] = None + one_of_schemas: Set[str] = { "IAudienceFilterAndAudienceFilter", "IAudienceFilterCountryAudienceFilter", "IAudienceFilterDemographicAudienceFilter", "IAudienceFilterDeviceAudienceFilter", "IAudienceFilterLanguageAudienceFilter", "IAudienceFilterNotAudienceFilter", "IAudienceFilterOrAudienceFilter" } # model_config is inherited from LazyValidatedModel @@ -81,6 +84,11 @@ def actual_instance_must_validate_oneof(cls, v): error_messages.append(f"Error! Input type `{type(v)}` is not `IAudienceFilterDemographicAudienceFilter`") else: match += 1 + # validate data type: IAudienceFilterDeviceAudienceFilter + if not isinstance(v, IAudienceFilterDeviceAudienceFilter): + error_messages.append(f"Error! Input type `{type(v)}` is not `IAudienceFilterDeviceAudienceFilter`") + else: + match += 1 # validate data type: IAudienceFilterLanguageAudienceFilter if not isinstance(v, IAudienceFilterLanguageAudienceFilter): error_messages.append(f"Error! Input type `{type(v)}` is not `IAudienceFilterLanguageAudienceFilter`") @@ -98,10 +106,10 @@ def actual_instance_must_validate_oneof(cls, v): match += 1 if match > 1: # more than 1 match - raise ValueError("Multiple matches found when setting `actual_instance` in IAudienceFilter with oneOf schemas: IAudienceFilterAndAudienceFilter, IAudienceFilterCountryAudienceFilter, IAudienceFilterDemographicAudienceFilter, IAudienceFilterLanguageAudienceFilter, IAudienceFilterNotAudienceFilter, IAudienceFilterOrAudienceFilter. Details: " + ", ".join(error_messages)) + raise ValueError("Multiple matches found when setting `actual_instance` in IAudienceFilter with oneOf schemas: IAudienceFilterAndAudienceFilter, IAudienceFilterCountryAudienceFilter, IAudienceFilterDemographicAudienceFilter, IAudienceFilterDeviceAudienceFilter, IAudienceFilterLanguageAudienceFilter, IAudienceFilterNotAudienceFilter, IAudienceFilterOrAudienceFilter. Details: " + ", ".join(error_messages)) elif match == 0: # no match - raise ValueError("No match found when setting `actual_instance` in IAudienceFilter with oneOf schemas: IAudienceFilterAndAudienceFilter, IAudienceFilterCountryAudienceFilter, IAudienceFilterDemographicAudienceFilter, IAudienceFilterLanguageAudienceFilter, IAudienceFilterNotAudienceFilter, IAudienceFilterOrAudienceFilter. Details: " + ", ".join(error_messages)) + raise ValueError("No match found when setting `actual_instance` in IAudienceFilter with oneOf schemas: IAudienceFilterAndAudienceFilter, IAudienceFilterCountryAudienceFilter, IAudienceFilterDemographicAudienceFilter, IAudienceFilterDeviceAudienceFilter, IAudienceFilterLanguageAudienceFilter, IAudienceFilterNotAudienceFilter, IAudienceFilterOrAudienceFilter. Details: " + ", ".join(error_messages)) else: return v @@ -134,6 +142,12 @@ def from_json(cls, json_str: str) -> Self: match += 1 except (ValidationError, ValueError) as e: error_messages.append(str(e)) + # deserialize data into IAudienceFilterDeviceAudienceFilter + try: + instance.actual_instance = IAudienceFilterDeviceAudienceFilter.from_json(json_str) + match += 1 + except (ValidationError, ValueError) as e: + error_messages.append(str(e)) # deserialize data into IAudienceFilterLanguageAudienceFilter try: instance.actual_instance = IAudienceFilterLanguageAudienceFilter.from_json(json_str) @@ -155,10 +169,10 @@ def from_json(cls, json_str: str) -> Self: if match > 1: # more than 1 match - raise ValueError("Multiple matches found when deserializing the JSON string into IAudienceFilter with oneOf schemas: IAudienceFilterAndAudienceFilter, IAudienceFilterCountryAudienceFilter, IAudienceFilterDemographicAudienceFilter, IAudienceFilterLanguageAudienceFilter, IAudienceFilterNotAudienceFilter, IAudienceFilterOrAudienceFilter. Details: " + ", ".join(error_messages)) + raise ValueError("Multiple matches found when deserializing the JSON string into IAudienceFilter with oneOf schemas: IAudienceFilterAndAudienceFilter, IAudienceFilterCountryAudienceFilter, IAudienceFilterDemographicAudienceFilter, IAudienceFilterDeviceAudienceFilter, IAudienceFilterLanguageAudienceFilter, IAudienceFilterNotAudienceFilter, IAudienceFilterOrAudienceFilter. Details: " + ", ".join(error_messages)) elif match == 0: # no match - raise ValueError("No match found when deserializing the JSON string into IAudienceFilter with oneOf schemas: IAudienceFilterAndAudienceFilter, IAudienceFilterCountryAudienceFilter, IAudienceFilterDemographicAudienceFilter, IAudienceFilterLanguageAudienceFilter, IAudienceFilterNotAudienceFilter, IAudienceFilterOrAudienceFilter. Details: " + ", ".join(error_messages)) + raise ValueError("No match found when deserializing the JSON string into IAudienceFilter with oneOf schemas: IAudienceFilterAndAudienceFilter, IAudienceFilterCountryAudienceFilter, IAudienceFilterDemographicAudienceFilter, IAudienceFilterDeviceAudienceFilter, IAudienceFilterLanguageAudienceFilter, IAudienceFilterNotAudienceFilter, IAudienceFilterOrAudienceFilter. Details: " + ", ".join(error_messages)) else: return instance @@ -172,7 +186,7 @@ def to_json(self) -> str: else: return json.dumps(self.actual_instance) - def to_dict(self) -> Optional[Union[Dict[str, Any], IAudienceFilterAndAudienceFilter, IAudienceFilterCountryAudienceFilter, IAudienceFilterDemographicAudienceFilter, IAudienceFilterLanguageAudienceFilter, IAudienceFilterNotAudienceFilter, IAudienceFilterOrAudienceFilter]]: + def to_dict(self) -> Optional[Union[Dict[str, Any], IAudienceFilterAndAudienceFilter, IAudienceFilterCountryAudienceFilter, IAudienceFilterDemographicAudienceFilter, IAudienceFilterDeviceAudienceFilter, IAudienceFilterLanguageAudienceFilter, IAudienceFilterNotAudienceFilter, IAudienceFilterOrAudienceFilter]]: """Returns the dict representation of the actual instance""" if self.actual_instance is None: return None diff --git a/src/rapidata/api_client/models/i_audience_filter_device_audience_filter.py b/src/rapidata/api_client/models/i_audience_filter_device_audience_filter.py new file mode 100644 index 0000000000..2bde528b3c --- /dev/null +++ b/src/rapidata/api_client/models/i_audience_filter_device_audience_filter.py @@ -0,0 +1,98 @@ +# coding: utf-8 + +""" + Rapidata Asset API + + The API for the Rapidata Asset service + + The version of the OpenAPI document: v1 + Generated by OpenAPI Generator (https://openapi-generator.tech) + + Do not edit the class manually. +""" # noqa: E501 + +from __future__ import annotations +import pprint +import re # noqa: F401 +import json + +from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator +from typing import Any, ClassVar, Dict, List +from rapidata.api_client.models.device_type import DeviceType +from pydantic import ValidationError +from rapidata.api_client.lazy_model import LazyValidatedModel +from typing import Optional, Set +from typing_extensions import Self + +class IAudienceFilterDeviceAudienceFilter(LazyValidatedModel): + """ + IAudienceFilterDeviceAudienceFilter + """ # noqa: E501 + t: StrictStr = Field(alias="_t") + device_types: List[DeviceType] = Field(alias="deviceTypes") + __properties: ClassVar[List[str]] = ["_t", "deviceTypes"] + + @field_validator('t') + def t_validate_enum(cls, value): + """Validates the enum""" + if value not in set(['DeviceFilter']): + raise ValueError("must be one of enum values ('DeviceFilter')") + return value + + # model_config is inherited from LazyValidatedModel + + + def to_str(self) -> str: + """Returns the string representation of the model using alias""" + return pprint.pformat(self.model_dump(by_alias=True)) + + def to_json(self) -> str: + """Returns the JSON representation of the model using alias""" + # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead + return json.dumps(self.to_dict()) + + @classmethod + def from_json(cls, json_str: str) -> Optional[Self]: + """Create an instance of IAudienceFilterDeviceAudienceFilter from a JSON string""" + return cls.from_dict(json.loads(json_str)) + + def to_dict(self) -> Dict[str, Any]: + """Return the dictionary representation of the model using alias. + + This has the following differences from calling pydantic's + `self.model_dump(by_alias=True)`: + + * `None` is only added to the output dict for nullable fields that + were set at model initialization. Other fields with value `None` + are ignored. + """ + excluded_fields: Set[str] = set([ + ]) + + _dict = self.model_dump( + by_alias=True, + exclude=excluded_fields, + exclude_none=True, + ) + return _dict + + @classmethod + def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: + """Create an instance of IAudienceFilterDeviceAudienceFilter from a dict""" + if obj is None: + return None + + if not isinstance(obj, dict): + return cls.model_validate(obj) + + _data = { + "_t": obj.get("_t"), + "deviceTypes": obj.get("deviceTypes") + } + try: + _obj = cls.model_validate(_data) + except ValidationError as _val_error: + _obj = cls._lazy_construct(_data, _val_error) + return _obj + + diff --git a/src/rapidata/api_client_README.md b/src/rapidata/api_client_README.md index 2188dc96ef..1b62aaf75f 100644 --- a/src/rapidata/api_client_README.md +++ b/src/rapidata/api_client_README.md @@ -701,6 +701,7 @@ Class | Method | HTTP request | Description - [IAudienceFilterAndAudienceFilter](rapidata/api_client/docs/IAudienceFilterAndAudienceFilter.md) - [IAudienceFilterCountryAudienceFilter](rapidata/api_client/docs/IAudienceFilterCountryAudienceFilter.md) - [IAudienceFilterDemographicAudienceFilter](rapidata/api_client/docs/IAudienceFilterDemographicAudienceFilter.md) + - [IAudienceFilterDeviceAudienceFilter](rapidata/api_client/docs/IAudienceFilterDeviceAudienceFilter.md) - [IAudienceFilterLanguageAudienceFilter](rapidata/api_client/docs/IAudienceFilterLanguageAudienceFilter.md) - [IAudienceFilterNotAudienceFilter](rapidata/api_client/docs/IAudienceFilterNotAudienceFilter.md) - [IAudienceFilterOrAudienceFilter](rapidata/api_client/docs/IAudienceFilterOrAudienceFilter.md)