vectorize_client.models.googledrive_config

Vectorize API

API for Vectorize services (Beta)

The version of the OpenAPI document: 0.1.2 Generated by OpenAPI Generator (https://openapi-generator.tech)

Do not edit the class manually.

 1# coding: utf-8
 2
 3"""
 4    Vectorize API
 5
 6    API for Vectorize services (Beta)
 7
 8    The version of the OpenAPI document: 0.1.2
 9    Generated by OpenAPI Generator (https://openapi-generator.tech)
10
11    Do not edit the class manually.
12"""  # noqa: E501
13
14
15from __future__ import annotations
16import pprint
17import re  # noqa: F401
18import json
19
20from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr, field_validator
21from typing import Any, ClassVar, Dict, List, Optional, Union
22from typing import Optional, Set
23from typing_extensions import Self
24
25class GOOGLEDRIVEConfig(BaseModel):
26    """
27    Configuration for Google Drive (Service Account) connector
28    """ # noqa: E501
29    file_extensions: List[StrictStr] = Field(description="File Extensions", alias="file-extensions")
30    root_parents: Optional[List[StrictStr]] = Field(default=None, description="Restrict ingest to these folder URLs (optional). Example: Enter Folder URLs. Example: https://drive.google.com/drive/folders/1234aBCd5678_eFgH9012iJKL3456opqr", alias="root-parents")
31    idle_time: Optional[Union[StrictFloat, StrictInt]] = Field(default=30, description="Polling Interval (seconds). Example: Enter polling interval in seconds", alias="idle-time")
32    __properties: ClassVar[List[str]] = ["file-extensions", "root-parents", "idle-time"]
33
34    @field_validator('file_extensions')
35    def file_extensions_validate_enum(cls, value):
36        """Validates the enum"""
37        for i in value:
38            if i not in set(['pdf', 'doc,docx,gdoc,odt,rtf,epub', 'ppt,pptx,gslides', 'xls,xlsx,gsheets,ods', 'eml,msg', 'txt', 'html,htm', 'md', 'jpg,jpeg,png,webp,svg,gif', 'json', 'csv']):
39                raise ValueError("each list item must be one of ('pdf', 'doc,docx,gdoc,odt,rtf,epub', 'ppt,pptx,gslides', 'xls,xlsx,gsheets,ods', 'eml,msg', 'txt', 'html,htm', 'md', 'jpg,jpeg,png,webp,svg,gif', 'json', 'csv')")
40        return value
41
42    model_config = ConfigDict(
43        populate_by_name=True,
44        validate_assignment=True,
45        protected_namespaces=(),
46    )
47
48
49    def to_str(self) -> str:
50        """Returns the string representation of the model using alias"""
51        return pprint.pformat(self.model_dump(by_alias=True))
52
53    def to_json(self) -> str:
54        """Returns the JSON representation of the model using alias"""
55        # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
56        return json.dumps(self.to_dict())
57
58    @classmethod
59    def from_json(cls, json_str: str) -> Optional[Self]:
60        """Create an instance of GOOGLEDRIVEConfig from a JSON string"""
61        return cls.from_dict(json.loads(json_str))
62
63    def to_dict(self) -> Dict[str, Any]:
64        """Return the dictionary representation of the model using alias.
65
66        This has the following differences from calling pydantic's
67        `self.model_dump(by_alias=True)`:
68
69        * `None` is only added to the output dict for nullable fields that
70          were set at model initialization. Other fields with value `None`
71          are ignored.
72        """
73        excluded_fields: Set[str] = set([
74        ])
75
76        _dict = self.model_dump(
77            by_alias=True,
78            exclude=excluded_fields,
79            exclude_none=True,
80        )
81        return _dict
82
83    @classmethod
84    def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
85        """Create an instance of GOOGLEDRIVEConfig from a dict"""
86        if obj is None:
87            return None
88
89        if not isinstance(obj, dict):
90            return cls.model_validate(obj)
91
92        _obj = cls.model_validate({
93            "file-extensions": obj.get("file-extensions"),
94            "root-parents": obj.get("root-parents"),
95            "idle-time": obj.get("idle-time") if obj.get("idle-time") is not None else 30
96        })
97        return _obj
class GOOGLEDRIVEConfig(pydantic.main.BaseModel):
26class GOOGLEDRIVEConfig(BaseModel):
27    """
28    Configuration for Google Drive (Service Account) connector
29    """ # noqa: E501
30    file_extensions: List[StrictStr] = Field(description="File Extensions", alias="file-extensions")
31    root_parents: Optional[List[StrictStr]] = Field(default=None, description="Restrict ingest to these folder URLs (optional). Example: Enter Folder URLs. Example: https://drive.google.com/drive/folders/1234aBCd5678_eFgH9012iJKL3456opqr", alias="root-parents")
32    idle_time: Optional[Union[StrictFloat, StrictInt]] = Field(default=30, description="Polling Interval (seconds). Example: Enter polling interval in seconds", alias="idle-time")
33    __properties: ClassVar[List[str]] = ["file-extensions", "root-parents", "idle-time"]
34
35    @field_validator('file_extensions')
36    def file_extensions_validate_enum(cls, value):
37        """Validates the enum"""
38        for i in value:
39            if i not in set(['pdf', 'doc,docx,gdoc,odt,rtf,epub', 'ppt,pptx,gslides', 'xls,xlsx,gsheets,ods', 'eml,msg', 'txt', 'html,htm', 'md', 'jpg,jpeg,png,webp,svg,gif', 'json', 'csv']):
40                raise ValueError("each list item must be one of ('pdf', 'doc,docx,gdoc,odt,rtf,epub', 'ppt,pptx,gslides', 'xls,xlsx,gsheets,ods', 'eml,msg', 'txt', 'html,htm', 'md', 'jpg,jpeg,png,webp,svg,gif', 'json', 'csv')")
41        return value
42
43    model_config = ConfigDict(
44        populate_by_name=True,
45        validate_assignment=True,
46        protected_namespaces=(),
47    )
48
49
50    def to_str(self) -> str:
51        """Returns the string representation of the model using alias"""
52        return pprint.pformat(self.model_dump(by_alias=True))
53
54    def to_json(self) -> str:
55        """Returns the JSON representation of the model using alias"""
56        # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
57        return json.dumps(self.to_dict())
58
59    @classmethod
60    def from_json(cls, json_str: str) -> Optional[Self]:
61        """Create an instance of GOOGLEDRIVEConfig from a JSON string"""
62        return cls.from_dict(json.loads(json_str))
63
64    def to_dict(self) -> Dict[str, Any]:
65        """Return the dictionary representation of the model using alias.
66
67        This has the following differences from calling pydantic's
68        `self.model_dump(by_alias=True)`:
69
70        * `None` is only added to the output dict for nullable fields that
71          were set at model initialization. Other fields with value `None`
72          are ignored.
73        """
74        excluded_fields: Set[str] = set([
75        ])
76
77        _dict = self.model_dump(
78            by_alias=True,
79            exclude=excluded_fields,
80            exclude_none=True,
81        )
82        return _dict
83
84    @classmethod
85    def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
86        """Create an instance of GOOGLEDRIVEConfig from a dict"""
87        if obj is None:
88            return None
89
90        if not isinstance(obj, dict):
91            return cls.model_validate(obj)
92
93        _obj = cls.model_validate({
94            "file-extensions": obj.get("file-extensions"),
95            "root-parents": obj.get("root-parents"),
96            "idle-time": obj.get("idle-time") if obj.get("idle-time") is not None else 30
97        })
98        return _obj

Configuration for Google Drive (Service Account) connector

file_extensions: List[Annotated[str, Strict(strict=True)]]
root_parents: Optional[List[Annotated[str, Strict(strict=True)]]]
idle_time: Union[Annotated[float, Strict(strict=True)], Annotated[int, Strict(strict=True)], NoneType]
@field_validator('file_extensions')
def file_extensions_validate_enum(cls, value):
35    @field_validator('file_extensions')
36    def file_extensions_validate_enum(cls, value):
37        """Validates the enum"""
38        for i in value:
39            if i not in set(['pdf', 'doc,docx,gdoc,odt,rtf,epub', 'ppt,pptx,gslides', 'xls,xlsx,gsheets,ods', 'eml,msg', 'txt', 'html,htm', 'md', 'jpg,jpeg,png,webp,svg,gif', 'json', 'csv']):
40                raise ValueError("each list item must be one of ('pdf', 'doc,docx,gdoc,odt,rtf,epub', 'ppt,pptx,gslides', 'xls,xlsx,gsheets,ods', 'eml,msg', 'txt', 'html,htm', 'md', 'jpg,jpeg,png,webp,svg,gif', 'json', 'csv')")
41        return value

Validates the enum

model_config = {'populate_by_name': True, 'validate_assignment': True, 'protected_namespaces': (), 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

def to_str(self) -> str:
50    def to_str(self) -> str:
51        """Returns the string representation of the model using alias"""
52        return pprint.pformat(self.model_dump(by_alias=True))

Returns the string representation of the model using alias

def to_json(self) -> str:
54    def to_json(self) -> str:
55        """Returns the JSON representation of the model using alias"""
56        # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
57        return json.dumps(self.to_dict())

Returns the JSON representation of the model using alias

@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
59    @classmethod
60    def from_json(cls, json_str: str) -> Optional[Self]:
61        """Create an instance of GOOGLEDRIVEConfig from a JSON string"""
62        return cls.from_dict(json.loads(json_str))

Create an instance of GOOGLEDRIVEConfig from a JSON string

def to_dict(self) -> Dict[str, Any]:
64    def to_dict(self) -> Dict[str, Any]:
65        """Return the dictionary representation of the model using alias.
66
67        This has the following differences from calling pydantic's
68        `self.model_dump(by_alias=True)`:
69
70        * `None` is only added to the output dict for nullable fields that
71          were set at model initialization. Other fields with value `None`
72          are ignored.
73        """
74        excluded_fields: Set[str] = set([
75        ])
76
77        _dict = self.model_dump(
78            by_alias=True,
79            exclude=excluded_fields,
80            exclude_none=True,
81        )
82        return _dict

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.
@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
84    @classmethod
85    def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
86        """Create an instance of GOOGLEDRIVEConfig from a dict"""
87        if obj is None:
88            return None
89
90        if not isinstance(obj, dict):
91            return cls.model_validate(obj)
92
93        _obj = cls.model_validate({
94            "file-extensions": obj.get("file-extensions"),
95            "root-parents": obj.get("root-parents"),
96            "idle-time": obj.get("idle-time") if obj.get("idle-time") is not None else 30
97        })
98        return _obj

Create an instance of GOOGLEDRIVEConfig from a dict