Source code for pydelfini.delfini_core.models.search_search_accounts_body
from typing import Any
from typing import Dict
from typing import List
from typing import Type
from typing import TypeVar
from typing import Union
from attrs import define as _attrs_define
from ..models.search_search_accounts_body_types_item import (
SearchSearchAccountsBodyTypesItem,
)
from ..types import UNSET
from ..types import Unset
T = TypeVar("T", bound="SearchSearchAccountsBody")
[docs]
@_attrs_define
class SearchSearchAccountsBody:
"""SearchSearchAccountsBody model
Attributes:
query (str):
account_bmeta (Union[Unset, str]): Filter by account metadata.
Provide a base64-encoded JSON mapping conformant to the
following JSON schema:
schema:
type: object
additionalProperties:
anyOf:
- type: string
- type: array
items:
type: string
This includes any combination of `{"x-meta": "foo"}` and
`{"x-meta-2": ["foo", "bar"]}`:
* In the single string case, the provided string must
match exactly to the value in the metadata field.
* In the case of an array of strings, the metadata field
is assumed to contain a JSON-encoded array of strings,
and only one of the strings in the provided array needs
to match one of the strings in the metadata field.
types (Union[Unset, List[SearchSearchAccountsBodyTypesItem]]):
"""
query: str
account_bmeta: Union[Unset, str] = UNSET
types: Union[Unset, List[SearchSearchAccountsBodyTypesItem]] = UNSET
[docs]
def to_dict(self) -> Dict[str, Any]:
"""Convert to a dict"""
query = self.query
account_bmeta = self.account_bmeta
types: Union[Unset, List[str]] = UNSET
if not isinstance(self.types, Unset):
types = []
for types_item_data in self.types:
types_item = types_item_data.value
types.append(types_item)
field_dict: Dict[str, Any] = {}
field_dict.update(
{
"query": query,
}
)
if account_bmeta is not UNSET:
field_dict["accountBmeta"] = account_bmeta
if types is not UNSET:
field_dict["types"] = types
return field_dict
[docs]
@classmethod
def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
"""Create an instance of :py:class:`SearchSearchAccountsBody` from a dict"""
d = src_dict.copy()
query = d.pop("query")
account_bmeta = d.pop("accountBmeta", UNSET)
types = []
_types = d.pop("types", UNSET)
for types_item_data in _types or []:
types_item = SearchSearchAccountsBodyTypesItem(types_item_data)
types.append(types_item)
search_search_accounts_body = cls(
query=query,
account_bmeta=account_bmeta,
types=types,
)
return search_search_accounts_body