wordlift-client 1.134.0__py3-none-any.whl → 1.136.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- wordlift_client/__init__.py +25 -3
- wordlift_client/api/__init__.py +1 -0
- wordlift_client/api/audit_api.py +18 -6
- wordlift_client/api/default_api.py +1767 -39
- wordlift_client/api_client.py +1 -1
- wordlift_client/configuration.py +1 -1
- wordlift_client/models/__init__.py +23 -2
- wordlift_client/models/audit_data.py +27 -11
- wordlift_client/models/automation_issue.py +110 -0
- wordlift_client/models/automation_readiness.py +16 -5
- wordlift_client/models/bot_status.py +102 -0
- wordlift_client/models/content_freshness.py +106 -0
- wordlift_client/models/content_structure.py +10 -6
- wordlift_client/models/detected_schema.py +100 -0
- wordlift_client/models/error_response.py +5 -3
- wordlift_client/models/html_semantics.py +100 -0
- wordlift_client/models/http_validation_error1.py +96 -0
- wordlift_client/models/image_accessibility.py +9 -7
- wordlift_client/models/internal_linking.py +100 -0
- wordlift_client/models/js_rendering.py +8 -17
- wordlift_client/models/monitor_result_item.py +117 -0
- wordlift_client/models/monitor_state.py +39 -0
- wordlift_client/models/monitor_summary_item.py +105 -0
- wordlift_client/models/neighbors.py +101 -0
- wordlift_client/models/page_info.py +95 -0
- wordlift_client/models/quick_wins_result.py +110 -0
- wordlift_client/models/resource_request.py +92 -0
- wordlift_client/models/resource_type.py +40 -0
- wordlift_client/models/schema_recommendation.py +90 -0
- wordlift_client/models/seo_fundamentals.py +6 -3
- wordlift_client/models/site_files.py +25 -10
- wordlift_client/models/structured_data.py +28 -5
- wordlift_client/models/url_list_item.py +132 -0
- wordlift_client/models/url_list_response.py +104 -0
- wordlift_client/models/url_results_response.py +121 -0
- wordlift_client/models/url_summary_response.py +136 -0
- wordlift_client/models/validation_error1.py +22 -9
- wordlift_client/models/validation_error2.py +96 -0
- wordlift_client/models/validation_error2_detail_inner.py +92 -0
- wordlift_client/models/well_known_files.py +98 -0
- {wordlift_client-1.134.0.dist-info → wordlift_client-1.136.0.dist-info}/METADATA +1 -1
- {wordlift_client-1.134.0.dist-info → wordlift_client-1.136.0.dist-info}/RECORD +45 -22
- {wordlift_client-1.134.0.dist-info → wordlift_client-1.136.0.dist-info}/LICENSE +0 -0
- {wordlift_client-1.134.0.dist-info → wordlift_client-1.136.0.dist-info}/WHEEL +0 -0
- {wordlift_client-1.134.0.dist-info → wordlift_client-1.136.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
WordLift API
|
|
5
|
+
|
|
6
|
+
WordLift API
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 1.0
|
|
9
|
+
Contact: hello@wordlift.io
|
|
10
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
11
|
+
|
|
12
|
+
Do not edit the class manually.
|
|
13
|
+
""" # noqa: E501
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
from __future__ import annotations
|
|
17
|
+
import pprint
|
|
18
|
+
import re # noqa: F401
|
|
19
|
+
import json
|
|
20
|
+
|
|
21
|
+
from datetime import datetime
|
|
22
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictFloat, StrictInt, StrictStr
|
|
23
|
+
from typing import Any, ClassVar, Dict, List, Optional, Union
|
|
24
|
+
from typing_extensions import Annotated
|
|
25
|
+
from wordlift_client.models.monitor_summary_item import MonitorSummaryItem
|
|
26
|
+
from wordlift_client.models.neighbors import Neighbors
|
|
27
|
+
from typing import Optional, Set
|
|
28
|
+
from typing_extensions import Self
|
|
29
|
+
|
|
30
|
+
class UrlSummaryResponse(BaseModel):
|
|
31
|
+
"""
|
|
32
|
+
UrlSummaryResponse
|
|
33
|
+
""" # noqa: E501
|
|
34
|
+
url: Annotated[str, Field(min_length=1, strict=True, max_length=2083)]
|
|
35
|
+
status: StrictStr
|
|
36
|
+
last_run: Optional[datetime] = None
|
|
37
|
+
score: Optional[Union[StrictFloat, StrictInt]] = None
|
|
38
|
+
ttfb_ms: Optional[Union[StrictFloat, StrictInt]] = None
|
|
39
|
+
response_time_ms: Optional[Union[StrictFloat, StrictInt]] = None
|
|
40
|
+
monitors: List[MonitorSummaryItem]
|
|
41
|
+
neighbors: Neighbors
|
|
42
|
+
__properties: ClassVar[List[str]] = ["url", "status", "last_run", "score", "ttfb_ms", "response_time_ms", "monitors", "neighbors"]
|
|
43
|
+
|
|
44
|
+
model_config = ConfigDict(
|
|
45
|
+
populate_by_name=True,
|
|
46
|
+
validate_assignment=True,
|
|
47
|
+
protected_namespaces=(),
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def to_str(self) -> str:
|
|
52
|
+
"""Returns the string representation of the model using alias"""
|
|
53
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
54
|
+
|
|
55
|
+
def to_json(self) -> str:
|
|
56
|
+
"""Returns the JSON representation of the model using alias"""
|
|
57
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
58
|
+
return json.dumps(self.to_dict())
|
|
59
|
+
|
|
60
|
+
@classmethod
|
|
61
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
62
|
+
"""Create an instance of UrlSummaryResponse from a JSON string"""
|
|
63
|
+
return cls.from_dict(json.loads(json_str))
|
|
64
|
+
|
|
65
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
66
|
+
"""Return the dictionary representation of the model using alias.
|
|
67
|
+
|
|
68
|
+
This has the following differences from calling pydantic's
|
|
69
|
+
`self.model_dump(by_alias=True)`:
|
|
70
|
+
|
|
71
|
+
* `None` is only added to the output dict for nullable fields that
|
|
72
|
+
were set at model initialization. Other fields with value `None`
|
|
73
|
+
are ignored.
|
|
74
|
+
"""
|
|
75
|
+
excluded_fields: Set[str] = set([
|
|
76
|
+
])
|
|
77
|
+
|
|
78
|
+
_dict = self.model_dump(
|
|
79
|
+
by_alias=True,
|
|
80
|
+
exclude=excluded_fields,
|
|
81
|
+
exclude_none=True,
|
|
82
|
+
)
|
|
83
|
+
# override the default output from pydantic by calling `to_dict()` of each item in monitors (list)
|
|
84
|
+
_items = []
|
|
85
|
+
if self.monitors:
|
|
86
|
+
for _item in self.monitors:
|
|
87
|
+
if _item:
|
|
88
|
+
_items.append(_item.to_dict())
|
|
89
|
+
_dict['monitors'] = _items
|
|
90
|
+
# override the default output from pydantic by calling `to_dict()` of neighbors
|
|
91
|
+
if self.neighbors:
|
|
92
|
+
_dict['neighbors'] = self.neighbors.to_dict()
|
|
93
|
+
# set to None if last_run (nullable) is None
|
|
94
|
+
# and model_fields_set contains the field
|
|
95
|
+
if self.last_run is None and "last_run" in self.model_fields_set:
|
|
96
|
+
_dict['last_run'] = None
|
|
97
|
+
|
|
98
|
+
# set to None if score (nullable) is None
|
|
99
|
+
# and model_fields_set contains the field
|
|
100
|
+
if self.score is None and "score" in self.model_fields_set:
|
|
101
|
+
_dict['score'] = None
|
|
102
|
+
|
|
103
|
+
# set to None if ttfb_ms (nullable) is None
|
|
104
|
+
# and model_fields_set contains the field
|
|
105
|
+
if self.ttfb_ms is None and "ttfb_ms" in self.model_fields_set:
|
|
106
|
+
_dict['ttfb_ms'] = None
|
|
107
|
+
|
|
108
|
+
# set to None if response_time_ms (nullable) is None
|
|
109
|
+
# and model_fields_set contains the field
|
|
110
|
+
if self.response_time_ms is None and "response_time_ms" in self.model_fields_set:
|
|
111
|
+
_dict['response_time_ms'] = None
|
|
112
|
+
|
|
113
|
+
return _dict
|
|
114
|
+
|
|
115
|
+
@classmethod
|
|
116
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
117
|
+
"""Create an instance of UrlSummaryResponse from a dict"""
|
|
118
|
+
if obj is None:
|
|
119
|
+
return None
|
|
120
|
+
|
|
121
|
+
if not isinstance(obj, dict):
|
|
122
|
+
return cls.model_validate(obj)
|
|
123
|
+
|
|
124
|
+
_obj = cls.model_validate({
|
|
125
|
+
"url": obj.get("url"),
|
|
126
|
+
"status": obj.get("status"),
|
|
127
|
+
"last_run": obj.get("last_run"),
|
|
128
|
+
"score": obj.get("score"),
|
|
129
|
+
"ttfb_ms": obj.get("ttfb_ms"),
|
|
130
|
+
"response_time_ms": obj.get("response_time_ms"),
|
|
131
|
+
"monitors": [MonitorSummaryItem.from_dict(_item) for _item in obj["monitors"]] if obj.get("monitors") is not None else None,
|
|
132
|
+
"neighbors": Neighbors.from_dict(obj["neighbors"]) if obj.get("neighbors") is not None else None
|
|
133
|
+
})
|
|
134
|
+
return _obj
|
|
135
|
+
|
|
136
|
+
|
|
@@ -18,9 +18,9 @@ import pprint
|
|
|
18
18
|
import re # noqa: F401
|
|
19
19
|
import json
|
|
20
20
|
|
|
21
|
-
from pydantic import BaseModel, ConfigDict
|
|
21
|
+
from pydantic import BaseModel, ConfigDict, StrictStr
|
|
22
22
|
from typing import Any, ClassVar, Dict, List, Optional
|
|
23
|
-
from wordlift_client.models.
|
|
23
|
+
from wordlift_client.models.location_inner import LocationInner
|
|
24
24
|
from typing import Optional, Set
|
|
25
25
|
from typing_extensions import Self
|
|
26
26
|
|
|
@@ -28,8 +28,12 @@ class ValidationError1(BaseModel):
|
|
|
28
28
|
"""
|
|
29
29
|
ValidationError1
|
|
30
30
|
""" # noqa: E501
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
loc: List[LocationInner]
|
|
32
|
+
msg: StrictStr
|
|
33
|
+
type: StrictStr
|
|
34
|
+
input: Optional[Any] = None
|
|
35
|
+
ctx: Optional[Dict[str, Any]] = None
|
|
36
|
+
__properties: ClassVar[List[str]] = ["loc", "msg", "type", "input", "ctx"]
|
|
33
37
|
|
|
34
38
|
model_config = ConfigDict(
|
|
35
39
|
populate_by_name=True,
|
|
@@ -70,13 +74,18 @@ class ValidationError1(BaseModel):
|
|
|
70
74
|
exclude=excluded_fields,
|
|
71
75
|
exclude_none=True,
|
|
72
76
|
)
|
|
73
|
-
# override the default output from pydantic by calling `to_dict()` of each item in
|
|
77
|
+
# override the default output from pydantic by calling `to_dict()` of each item in loc (list)
|
|
74
78
|
_items = []
|
|
75
|
-
if self.
|
|
76
|
-
for _item in self.
|
|
79
|
+
if self.loc:
|
|
80
|
+
for _item in self.loc:
|
|
77
81
|
if _item:
|
|
78
82
|
_items.append(_item.to_dict())
|
|
79
|
-
_dict['
|
|
83
|
+
_dict['loc'] = _items
|
|
84
|
+
# set to None if input (nullable) is None
|
|
85
|
+
# and model_fields_set contains the field
|
|
86
|
+
if self.input is None and "input" in self.model_fields_set:
|
|
87
|
+
_dict['input'] = None
|
|
88
|
+
|
|
80
89
|
return _dict
|
|
81
90
|
|
|
82
91
|
@classmethod
|
|
@@ -89,7 +98,11 @@ class ValidationError1(BaseModel):
|
|
|
89
98
|
return cls.model_validate(obj)
|
|
90
99
|
|
|
91
100
|
_obj = cls.model_validate({
|
|
92
|
-
"
|
|
101
|
+
"loc": [LocationInner.from_dict(_item) for _item in obj["loc"]] if obj.get("loc") is not None else None,
|
|
102
|
+
"msg": obj.get("msg"),
|
|
103
|
+
"type": obj.get("type"),
|
|
104
|
+
"input": obj.get("input"),
|
|
105
|
+
"ctx": obj.get("ctx")
|
|
93
106
|
})
|
|
94
107
|
return _obj
|
|
95
108
|
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
WordLift API
|
|
5
|
+
|
|
6
|
+
WordLift API
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 1.0
|
|
9
|
+
Contact: hello@wordlift.io
|
|
10
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
11
|
+
|
|
12
|
+
Do not edit the class manually.
|
|
13
|
+
""" # noqa: E501
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
from __future__ import annotations
|
|
17
|
+
import pprint
|
|
18
|
+
import re # noqa: F401
|
|
19
|
+
import json
|
|
20
|
+
|
|
21
|
+
from pydantic import BaseModel, ConfigDict
|
|
22
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
23
|
+
from wordlift_client.models.validation_error2_detail_inner import ValidationError2DetailInner
|
|
24
|
+
from typing import Optional, Set
|
|
25
|
+
from typing_extensions import Self
|
|
26
|
+
|
|
27
|
+
class ValidationError2(BaseModel):
|
|
28
|
+
"""
|
|
29
|
+
ValidationError2
|
|
30
|
+
""" # noqa: E501
|
|
31
|
+
detail: Optional[List[ValidationError2DetailInner]] = None
|
|
32
|
+
__properties: ClassVar[List[str]] = ["detail"]
|
|
33
|
+
|
|
34
|
+
model_config = ConfigDict(
|
|
35
|
+
populate_by_name=True,
|
|
36
|
+
validate_assignment=True,
|
|
37
|
+
protected_namespaces=(),
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def to_str(self) -> str:
|
|
42
|
+
"""Returns the string representation of the model using alias"""
|
|
43
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
44
|
+
|
|
45
|
+
def to_json(self) -> str:
|
|
46
|
+
"""Returns the JSON representation of the model using alias"""
|
|
47
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
48
|
+
return json.dumps(self.to_dict())
|
|
49
|
+
|
|
50
|
+
@classmethod
|
|
51
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
52
|
+
"""Create an instance of ValidationError2 from a JSON string"""
|
|
53
|
+
return cls.from_dict(json.loads(json_str))
|
|
54
|
+
|
|
55
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
56
|
+
"""Return the dictionary representation of the model using alias.
|
|
57
|
+
|
|
58
|
+
This has the following differences from calling pydantic's
|
|
59
|
+
`self.model_dump(by_alias=True)`:
|
|
60
|
+
|
|
61
|
+
* `None` is only added to the output dict for nullable fields that
|
|
62
|
+
were set at model initialization. Other fields with value `None`
|
|
63
|
+
are ignored.
|
|
64
|
+
"""
|
|
65
|
+
excluded_fields: Set[str] = set([
|
|
66
|
+
])
|
|
67
|
+
|
|
68
|
+
_dict = self.model_dump(
|
|
69
|
+
by_alias=True,
|
|
70
|
+
exclude=excluded_fields,
|
|
71
|
+
exclude_none=True,
|
|
72
|
+
)
|
|
73
|
+
# override the default output from pydantic by calling `to_dict()` of each item in detail (list)
|
|
74
|
+
_items = []
|
|
75
|
+
if self.detail:
|
|
76
|
+
for _item in self.detail:
|
|
77
|
+
if _item:
|
|
78
|
+
_items.append(_item.to_dict())
|
|
79
|
+
_dict['detail'] = _items
|
|
80
|
+
return _dict
|
|
81
|
+
|
|
82
|
+
@classmethod
|
|
83
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
84
|
+
"""Create an instance of ValidationError2 from a dict"""
|
|
85
|
+
if obj is None:
|
|
86
|
+
return None
|
|
87
|
+
|
|
88
|
+
if not isinstance(obj, dict):
|
|
89
|
+
return cls.model_validate(obj)
|
|
90
|
+
|
|
91
|
+
_obj = cls.model_validate({
|
|
92
|
+
"detail": [ValidationError2DetailInner.from_dict(_item) for _item in obj["detail"]] if obj.get("detail") is not None else None
|
|
93
|
+
})
|
|
94
|
+
return _obj
|
|
95
|
+
|
|
96
|
+
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
WordLift API
|
|
5
|
+
|
|
6
|
+
WordLift API
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 1.0
|
|
9
|
+
Contact: hello@wordlift.io
|
|
10
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
11
|
+
|
|
12
|
+
Do not edit the class manually.
|
|
13
|
+
""" # noqa: E501
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
from __future__ import annotations
|
|
17
|
+
import pprint
|
|
18
|
+
import re # noqa: F401
|
|
19
|
+
import json
|
|
20
|
+
|
|
21
|
+
from pydantic import BaseModel, ConfigDict, StrictStr
|
|
22
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
23
|
+
from typing import Optional, Set
|
|
24
|
+
from typing_extensions import Self
|
|
25
|
+
|
|
26
|
+
class ValidationError2DetailInner(BaseModel):
|
|
27
|
+
"""
|
|
28
|
+
ValidationError2DetailInner
|
|
29
|
+
""" # noqa: E501
|
|
30
|
+
loc: Optional[List[StrictStr]] = None
|
|
31
|
+
msg: Optional[StrictStr] = None
|
|
32
|
+
type: Optional[StrictStr] = None
|
|
33
|
+
__properties: ClassVar[List[str]] = ["loc", "msg", "type"]
|
|
34
|
+
|
|
35
|
+
model_config = ConfigDict(
|
|
36
|
+
populate_by_name=True,
|
|
37
|
+
validate_assignment=True,
|
|
38
|
+
protected_namespaces=(),
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
def to_str(self) -> str:
|
|
43
|
+
"""Returns the string representation of the model using alias"""
|
|
44
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
45
|
+
|
|
46
|
+
def to_json(self) -> str:
|
|
47
|
+
"""Returns the JSON representation of the model using alias"""
|
|
48
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
49
|
+
return json.dumps(self.to_dict())
|
|
50
|
+
|
|
51
|
+
@classmethod
|
|
52
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
53
|
+
"""Create an instance of ValidationError2DetailInner from a JSON string"""
|
|
54
|
+
return cls.from_dict(json.loads(json_str))
|
|
55
|
+
|
|
56
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
57
|
+
"""Return the dictionary representation of the model using alias.
|
|
58
|
+
|
|
59
|
+
This has the following differences from calling pydantic's
|
|
60
|
+
`self.model_dump(by_alias=True)`:
|
|
61
|
+
|
|
62
|
+
* `None` is only added to the output dict for nullable fields that
|
|
63
|
+
were set at model initialization. Other fields with value `None`
|
|
64
|
+
are ignored.
|
|
65
|
+
"""
|
|
66
|
+
excluded_fields: Set[str] = set([
|
|
67
|
+
])
|
|
68
|
+
|
|
69
|
+
_dict = self.model_dump(
|
|
70
|
+
by_alias=True,
|
|
71
|
+
exclude=excluded_fields,
|
|
72
|
+
exclude_none=True,
|
|
73
|
+
)
|
|
74
|
+
return _dict
|
|
75
|
+
|
|
76
|
+
@classmethod
|
|
77
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
78
|
+
"""Create an instance of ValidationError2DetailInner from a dict"""
|
|
79
|
+
if obj is None:
|
|
80
|
+
return None
|
|
81
|
+
|
|
82
|
+
if not isinstance(obj, dict):
|
|
83
|
+
return cls.model_validate(obj)
|
|
84
|
+
|
|
85
|
+
_obj = cls.model_validate({
|
|
86
|
+
"loc": obj.get("loc"),
|
|
87
|
+
"msg": obj.get("msg"),
|
|
88
|
+
"type": obj.get("type")
|
|
89
|
+
})
|
|
90
|
+
return _obj
|
|
91
|
+
|
|
92
|
+
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
WordLift API
|
|
5
|
+
|
|
6
|
+
WordLift API
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 1.0
|
|
9
|
+
Contact: hello@wordlift.io
|
|
10
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
11
|
+
|
|
12
|
+
Do not edit the class manually.
|
|
13
|
+
""" # noqa: E501
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
from __future__ import annotations
|
|
17
|
+
import pprint
|
|
18
|
+
import re # noqa: F401
|
|
19
|
+
import json
|
|
20
|
+
|
|
21
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictBool
|
|
22
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
23
|
+
from typing import Optional, Set
|
|
24
|
+
from typing_extensions import Self
|
|
25
|
+
|
|
26
|
+
class WellKnownFiles(BaseModel):
|
|
27
|
+
"""
|
|
28
|
+
Status of .well-known directory files
|
|
29
|
+
""" # noqa: E501
|
|
30
|
+
ai_plugin: Optional[StrictBool] = Field(default=None, description="Whether .well-known/ai-plugin.json exists (ChatGPT/OpenAI plugins)", alias="aiPlugin")
|
|
31
|
+
ucp: Optional[StrictBool] = Field(default=None, description="Whether .well-known/ucp.json exists (Universal Commerce Protocol)")
|
|
32
|
+
security: Optional[StrictBool] = Field(default=None, description="Whether .well-known/security.txt exists (security contact info)")
|
|
33
|
+
asset_links: Optional[StrictBool] = Field(default=None, description="Whether .well-known/assetlinks.json exists (Android deep linking)", alias="assetLinks")
|
|
34
|
+
apple_association: Optional[StrictBool] = Field(default=None, description="Whether .well-known/apple-app-site-association exists (iOS deep linking)", alias="appleAssociation")
|
|
35
|
+
llms_txt: Optional[StrictBool] = Field(default=None, description="Whether .well-known/llms.txt exists (alternative LLM instructions location)", alias="llmsTxt")
|
|
36
|
+
__properties: ClassVar[List[str]] = ["aiPlugin", "ucp", "security", "assetLinks", "appleAssociation", "llmsTxt"]
|
|
37
|
+
|
|
38
|
+
model_config = ConfigDict(
|
|
39
|
+
populate_by_name=True,
|
|
40
|
+
validate_assignment=True,
|
|
41
|
+
protected_namespaces=(),
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def to_str(self) -> str:
|
|
46
|
+
"""Returns the string representation of the model using alias"""
|
|
47
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
48
|
+
|
|
49
|
+
def to_json(self) -> str:
|
|
50
|
+
"""Returns the JSON representation of the model using alias"""
|
|
51
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
52
|
+
return json.dumps(self.to_dict())
|
|
53
|
+
|
|
54
|
+
@classmethod
|
|
55
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
56
|
+
"""Create an instance of WellKnownFiles from a JSON string"""
|
|
57
|
+
return cls.from_dict(json.loads(json_str))
|
|
58
|
+
|
|
59
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
60
|
+
"""Return the dictionary representation of the model using alias.
|
|
61
|
+
|
|
62
|
+
This has the following differences from calling pydantic's
|
|
63
|
+
`self.model_dump(by_alias=True)`:
|
|
64
|
+
|
|
65
|
+
* `None` is only added to the output dict for nullable fields that
|
|
66
|
+
were set at model initialization. Other fields with value `None`
|
|
67
|
+
are ignored.
|
|
68
|
+
"""
|
|
69
|
+
excluded_fields: Set[str] = set([
|
|
70
|
+
])
|
|
71
|
+
|
|
72
|
+
_dict = self.model_dump(
|
|
73
|
+
by_alias=True,
|
|
74
|
+
exclude=excluded_fields,
|
|
75
|
+
exclude_none=True,
|
|
76
|
+
)
|
|
77
|
+
return _dict
|
|
78
|
+
|
|
79
|
+
@classmethod
|
|
80
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
81
|
+
"""Create an instance of WellKnownFiles from a dict"""
|
|
82
|
+
if obj is None:
|
|
83
|
+
return None
|
|
84
|
+
|
|
85
|
+
if not isinstance(obj, dict):
|
|
86
|
+
return cls.model_validate(obj)
|
|
87
|
+
|
|
88
|
+
_obj = cls.model_validate({
|
|
89
|
+
"aiPlugin": obj.get("aiPlugin"),
|
|
90
|
+
"ucp": obj.get("ucp"),
|
|
91
|
+
"security": obj.get("security"),
|
|
92
|
+
"assetLinks": obj.get("assetLinks"),
|
|
93
|
+
"appleAssociation": obj.get("appleAssociation"),
|
|
94
|
+
"llmsTxt": obj.get("llmsTxt")
|
|
95
|
+
})
|
|
96
|
+
return _obj
|
|
97
|
+
|
|
98
|
+
|