Source code for openapi_client.models.datasource_details_datasource_config_auth_config

# coding: utf-8

"""
    Amorphic Data Platform

    Amorphic Data Platform - API Definition documentation

    The version of the OpenAPI document: 0.3.0
    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, Optional
from typing import Optional, Set
from typing_extensions import Self

[docs] class DatasourceDetailsDatasourceConfigAuthConfig(BaseModel): """ Authentication configuration. Required properties depend on AuthType value. """ # noqa: E501 username: Optional[StrictStr] = Field(default=None, description="Username for basic authentication (required for BasicAuth)", alias="Username") password: Optional[StrictStr] = Field(default=None, description="Password for basic authentication (required for BasicAuth)", alias="Password") consumer_key: Optional[StrictStr] = Field(default=None, description="OAuth1 consumer key (required for OAuth1)", alias="ConsumerKey") consumer_secret: Optional[StrictStr] = Field(default=None, description="OAuth1 consumer secret (required for OAuth1)", alias="ConsumerSecret") access_token: Optional[StrictStr] = Field(default=None, description="OAuth1 access token (required for OAuth1)", alias="AccessToken") token_secret: Optional[StrictStr] = Field(default=None, description="OAuth1 token secret (required for OAuth1)", alias="TokenSecret") grant_type: Optional[StrictStr] = Field(default=None, description="OAuth2 grant type (required for OAuth2)", alias="GrantType") token_url: Optional[StrictStr] = Field(default=None, description="OAuth2 token endpoint URL (required for OAuth2)", alias="TokenUrl") client_id: Optional[StrictStr] = Field(default=None, description="OAuth2 client ID (required for OAuth2)", alias="ClientId") client_secret: Optional[StrictStr] = Field(default=None, description="OAuth2 client secret (required for OAuth2)", alias="ClientSecret") scope: Optional[StrictStr] = Field(default=None, description="OAuth2 scope (optional for OAuth2)", alias="Scope") token: Optional[StrictStr] = Field(default=None, description="Bearer token (required for BearerToken)", alias="Token") key_name: Optional[StrictStr] = Field(default=None, description="API key parameter name (required for ApiKey)", alias="KeyName") key_value: Optional[StrictStr] = Field(default=None, description="API key value (required for ApiKey)", alias="KeyValue") add_to: Optional[StrictStr] = Field(default=None, description="Where to add the API key (required for ApiKey)", alias="AddTo") __properties: ClassVar[List[str]] = ["Username", "Password", "ConsumerKey", "ConsumerSecret", "AccessToken", "TokenSecret", "GrantType", "TokenUrl", "ClientId", "ClientSecret", "Scope", "Token", "KeyName", "KeyValue", "AddTo"]
[docs] @field_validator('add_to') def add_to_validate_enum(cls, value): """Validates the enum""" if value is None: return value if value not in set(['Header', 'Query']): raise ValueError("must be one of enum values ('Header', 'Query')") return value
model_config = ConfigDict( populate_by_name=True, validate_assignment=True, protected_namespaces=(), )
[docs] def to_str(self) -> str: """Returns the string representation of the model using alias""" return pprint.pformat(self.model_dump(by_alias=True))
[docs] 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())
[docs] @classmethod def from_json(cls, json_str: str) -> Optional[Self]: """Create an instance of DatasourceDetailsDatasourceConfigAuthConfig from a JSON string""" return cls.from_dict(json.loads(json_str))
[docs] 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
[docs] @classmethod def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: """Create an instance of DatasourceDetailsDatasourceConfigAuthConfig from a dict""" if obj is None: return None if not isinstance(obj, dict): return cls.model_validate(obj) _obj = cls.model_validate({ "Username": obj.get("Username"), "Password": obj.get("Password"), "ConsumerKey": obj.get("ConsumerKey"), "ConsumerSecret": obj.get("ConsumerSecret"), "AccessToken": obj.get("AccessToken"), "TokenSecret": obj.get("TokenSecret"), "GrantType": obj.get("GrantType"), "TokenUrl": obj.get("TokenUrl"), "ClientId": obj.get("ClientId"), "ClientSecret": obj.get("ClientSecret"), "Scope": obj.get("Scope"), "Token": obj.get("Token"), "KeyName": obj.get("KeyName"), "KeyValue": obj.get("KeyValue"), "AddTo": obj.get("AddTo") }) return _obj