| # coding: utf-8 | |
| """ | |
| Airflow API | |
| Airflow API. All endpoints located under ``/api/v2`` can be used safely, are stable and backward compatible. Endpoints located under ``/ui`` are dedicated to the UI and are subject to breaking change depending on the need of the frontend. Users should not rely on those but use the public ones instead. **Filtering with pattern parameters.** Many list endpoints accept ``*_pattern`` and ``*_prefix_pattern`` query parameters. Unless a parameter's own description says otherwise, ``*_pattern`` is a case-insensitive substring match (SQL ``ILIKE '%term%'``) where ``%`` matches any sequence and ``_`` matches any single character (e.g. ``%customer_%``) — convenient, but it cannot use B-tree indexes, so it is slow on large tables. ``*_prefix_pattern`` matches the start of the value, is case-sensitive and index-friendly (prefer it at scale); there ``%`` and ``_`` are literal and trailing non-alphanumeric characters are stripped so the range scan stays index-compatible under locale-aware collations (e.g. ``test_`` matches values starting with ``test``, and ``s3://`` matches ``s3``). In both, ``|`` means OR (e.g. ``dag1|dag2``) and ``~`` matches everything. Regular expressions are not supported by these parameters; regex-capable endpoints expose a separate parameter. | |
| The version of the OpenAPI document: 2 | |
| Generated by OpenAPI Generator (https://openapi-generator.tech) | |
| Do not edit the class manually. | |
| """ # noqa: E501 | |
| from __future__ import annotations | |
| from inspect import getfullargspec | |
| import json | |
| import pprint | |
| import re # noqa: F401 | |
| from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator | |
| from typing import Any, List, Optional | |
| from typing_extensions import Annotated | |
| from typing import Union, Any, List, Set, TYPE_CHECKING, Optional, Dict | |
| from typing_extensions import Literal, Self | |
| from pydantic import Field | |
| VALUE_ANY_OF_SCHEMAS = ["List[object]", "str"] | |
| class Value(BaseModel): | |
| """ | |
| Value | |
| """ | |
| # data type: str | |
| anyof_schema_1_validator: Optional[StrictStr] = None | |
| # data type: List[object] | |
| anyof_schema_2_validator: Optional[Annotated[List[Any], Field(min_length=2, max_length=2)]] = None | |
| if TYPE_CHECKING: | |
| actual_instance: Optional[Union[List[object], str]] = None | |
| else: | |
| actual_instance: Any = None | |
| any_of_schemas: Set[str] = { "List[object]", "str" } | |
| model_config = { | |
| "validate_assignment": True, | |
| "protected_namespaces": (), | |
| } | |
| def __init__(self, *args, **kwargs) -> None: | |
| if args: | |
| if len(args) > 1: | |
| raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`") | |
| if kwargs: | |
| raise ValueError("If a position argument is used, keyword arguments cannot be used.") | |
| super().__init__(actual_instance=args[0]) | |
| else: | |
| super().__init__(**kwargs) | |
| @field_validator('actual_instance') | |
| def actual_instance_must_validate_anyof(cls, v): | |
| instance = Value.model_construct() | |
| error_messages = [] | |
| # validate data type: str | |
| try: | |
| instance.anyof_schema_1_validator = v | |
| return v | |
| except (ValidationError, ValueError) as e: | |
| error_messages.append(str(e)) | |
| # validate data type: List[object] | |
| try: | |
| instance.anyof_schema_2_validator = v | |
| return v | |
| except (ValidationError, ValueError) as e: | |
| error_messages.append(str(e)) | |
| if error_messages: | |
| # no match | |
| raise ValueError("No match found when setting the actual_instance in Value with anyOf schemas: List[object], str. Details: " + ", ".join(error_messages)) | |
| else: | |
| return v | |
| @classmethod | |
| def from_dict(cls, obj: Dict[str, Any]) -> Self: | |
| return cls.from_json(json.dumps(obj)) | |
| @classmethod | |
| def from_json(cls, json_str: str) -> Self: | |
| """Returns the object represented by the json string""" | |
| instance = cls.model_construct() | |
| error_messages = [] | |
| # deserialize data into str | |
| try: | |
| # validation | |
| instance.anyof_schema_1_validator = json.loads(json_str) | |
| # assign value to actual_instance | |
| instance.actual_instance = instance.anyof_schema_1_validator | |
| return instance | |
| except (ValidationError, ValueError) as e: | |
| error_messages.append(str(e)) | |
| # deserialize data into List[object] | |
| try: | |
| # validation | |
| instance.anyof_schema_2_validator = json.loads(json_str) | |
| # assign value to actual_instance | |
| instance.actual_instance = instance.anyof_schema_2_validator | |
| return instance | |
| except (ValidationError, ValueError) as e: | |
| error_messages.append(str(e)) | |
| if error_messages: | |
| # no match | |
| raise ValueError("No match found when deserializing the JSON string into Value with anyOf schemas: List[object], str. Details: " + ", ".join(error_messages)) | |
| else: | |
| return instance | |
| def to_json(self) -> str: | |
| """Returns the JSON representation of the actual instance""" | |
| if self.actual_instance is None: | |
| return "null" | |
| if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json): | |
| return self.actual_instance.to_json() | |
| else: | |
| return json.dumps(self.actual_instance) | |
| def to_dict(self) -> Optional[Union[Dict[str, Any], List[object], str]]: | |
| """Returns the dict representation of the actual instance""" | |
| if self.actual_instance is None: | |
| return None | |
| if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict): | |
| return self.actual_instance.to_dict() | |
| else: | |
| return self.actual_instance | |
| def to_str(self) -> str: | |
| """Returns the string representation of the actual instance""" | |
| return pprint.pformat(self.model_dump()) | |