Skip to content

Commit f956b88

Browse files
algolia-botmillotp
andcommitted
fix(specs): browse response required properties
algolia/api-clients-automation#3348 Co-authored-by: Pierre Millot <[email protected]>
1 parent 761bbf5 commit f956b88

File tree

7 files changed

+30
-150
lines changed

7 files changed

+30
-150
lines changed

algoliasearch/ingestion/models/schedule_date_utils_input.py renamed to algoliasearch/ingestion/models/docker_streams_input.py

Lines changed: 8 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,17 @@
77
from __future__ import annotations
88

99
from json import loads
10-
from typing import Annotated, Any, Dict, Optional, Self
10+
from typing import Any, Dict, Self
1111

12-
from pydantic import BaseModel, ConfigDict, Field
12+
from pydantic import BaseModel, ConfigDict
1313

14-
from algoliasearch.ingestion.models.mapping_input import MappingInput
1514

16-
17-
class ScheduleDateUtilsInput(BaseModel):
15+
class DockerStreamsInput(BaseModel):
1816
"""
19-
Input for scheduled tasks whose source is of type `bigquery` and for which extracted data spans a fixed number of days.
17+
DockerStreamsInput
2018
"""
2119

22-
timeframe: Annotated[int, Field(le=30, strict=True, ge=1)] = Field(
23-
description="Number of days in the past until the current day for which to extract Big Query data."
24-
)
25-
mapping: Optional[MappingInput] = None
20+
streams: Dict[str, Any]
2621

2722
model_config = ConfigDict(
2823
use_enum_values=True, populate_by_name=True, validate_assignment=True
@@ -33,7 +28,7 @@ def to_json(self) -> str:
3328

3429
@classmethod
3530
def from_json(cls, json_str: str) -> Self:
36-
"""Create an instance of ScheduleDateUtilsInput from a JSON string"""
31+
"""Create an instance of DockerStreamsInput from a JSON string"""
3732
return cls.from_dict(loads(json_str))
3833

3934
def to_dict(self) -> Dict[str, Any]:
@@ -51,27 +46,16 @@ def to_dict(self) -> Dict[str, Any]:
5146
exclude={},
5247
exclude_none=True,
5348
)
54-
if self.mapping:
55-
_dict["mapping"] = self.mapping.to_dict()
5649
return _dict
5750

5851
@classmethod
5952
def from_dict(cls, obj: Dict) -> Self:
60-
"""Create an instance of ScheduleDateUtilsInput from a dict"""
53+
"""Create an instance of DockerStreamsInput from a dict"""
6154
if obj is None:
6255
return None
6356

6457
if not isinstance(obj, dict):
6558
return cls.model_validate(obj)
6659

67-
_obj = cls.model_validate(
68-
{
69-
"timeframe": obj.get("timeframe"),
70-
"mapping": (
71-
MappingInput.from_dict(obj.get("mapping"))
72-
if obj.get("mapping") is not None
73-
else None
74-
),
75-
}
76-
)
60+
_obj = cls.model_validate({"streams": obj.get("streams")})
7761
return _obj

algoliasearch/ingestion/models/on_demand_date_utils_input.py

Lines changed: 0 additions & 83 deletions
This file was deleted.

algoliasearch/ingestion/models/streaming_utils_input.py renamed to algoliasearch/ingestion/models/streaming_input.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
from algoliasearch.ingestion.models.mapping_input import MappingInput
1515

1616

17-
class StreamingUtilsInput(BaseModel):
17+
class StreamingInput(BaseModel):
1818
"""
1919
Input for a `streaming` task whose source is of type `ga4BigqueryExport` and for which extracted data is continuously streamed.
2020
"""
@@ -30,7 +30,7 @@ def to_json(self) -> str:
3030

3131
@classmethod
3232
def from_json(cls, json_str: str) -> Self:
33-
"""Create an instance of StreamingUtilsInput from a JSON string"""
33+
"""Create an instance of StreamingInput from a JSON string"""
3434
return cls.from_dict(loads(json_str))
3535

3636
def to_dict(self) -> Dict[str, Any]:
@@ -54,7 +54,7 @@ def to_dict(self) -> Dict[str, Any]:
5454

5555
@classmethod
5656
def from_dict(cls, obj: Dict) -> Self:
57-
"""Create an instance of StreamingUtilsInput from a dict"""
57+
"""Create an instance of StreamingInput from a dict"""
5858
if obj is None:
5959
return None
6060

algoliasearch/ingestion/models/task_input.py

Lines changed: 10 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -11,32 +11,21 @@
1111

1212
from pydantic import BaseModel, ValidationError, model_serializer
1313

14-
from algoliasearch.ingestion.models.on_demand_date_utils_input import (
15-
OnDemandDateUtilsInput,
16-
)
17-
from algoliasearch.ingestion.models.schedule_date_utils_input import (
18-
ScheduleDateUtilsInput,
19-
)
14+
from algoliasearch.ingestion.models.docker_streams_input import DockerStreamsInput
2015
from algoliasearch.ingestion.models.shopify_input import ShopifyInput
21-
from algoliasearch.ingestion.models.streaming_utils_input import StreamingUtilsInput
16+
from algoliasearch.ingestion.models.streaming_input import StreamingInput
2217

2318

2419
class TaskInput(BaseModel):
2520
"""
2621
Configuration of the task, depending on its type.
2722
"""
2823

29-
oneof_schema_1_validator: Optional[OnDemandDateUtilsInput] = None
30-
oneof_schema_2_validator: Optional[ScheduleDateUtilsInput] = None
31-
oneof_schema_3_validator: Optional[StreamingUtilsInput] = None
32-
oneof_schema_4_validator: Optional[ShopifyInput] = None
24+
oneof_schema_1_validator: Optional[StreamingInput] = None
25+
oneof_schema_2_validator: Optional[DockerStreamsInput] = None
26+
oneof_schema_3_validator: Optional[ShopifyInput] = None
3327
actual_instance: Optional[
34-
Union[
35-
OnDemandDateUtilsInput,
36-
ScheduleDateUtilsInput,
37-
ShopifyInput,
38-
StreamingUtilsInput,
39-
]
28+
Union[DockerStreamsInput, ShopifyInput, StreamingInput]
4029
] = None
4130

4231
def __init__(self, *args, **kwargs) -> None:
@@ -56,14 +45,7 @@ def __init__(self, *args, **kwargs) -> None:
5645
@model_serializer
5746
def unwrap_actual_instance(
5847
self,
59-
) -> Optional[
60-
Union[
61-
OnDemandDateUtilsInput,
62-
ScheduleDateUtilsInput,
63-
ShopifyInput,
64-
StreamingUtilsInput,
65-
]
66-
]:
48+
) -> Optional[Union[DockerStreamsInput, ShopifyInput, StreamingInput]]:
6749
"""
6850
Unwraps the `actual_instance` when calling the `to_json` method.
6951
"""
@@ -80,19 +62,13 @@ def from_json(cls, json_str: str) -> Self:
8062
error_messages = []
8163

8264
try:
83-
instance.actual_instance = OnDemandDateUtilsInput.from_json(json_str)
65+
instance.actual_instance = StreamingInput.from_json(json_str)
8466

8567
return instance
8668
except (ValidationError, ValueError) as e:
8769
error_messages.append(str(e))
8870
try:
89-
instance.actual_instance = ScheduleDateUtilsInput.from_json(json_str)
90-
91-
return instance
92-
except (ValidationError, ValueError) as e:
93-
error_messages.append(str(e))
94-
try:
95-
instance.actual_instance = StreamingUtilsInput.from_json(json_str)
71+
instance.actual_instance = DockerStreamsInput.from_json(json_str)
9672

9773
return instance
9874
except (ValidationError, ValueError) as e:
@@ -105,7 +81,7 @@ def from_json(cls, json_str: str) -> Self:
10581
error_messages.append(str(e))
10682

10783
raise ValueError(
108-
"No match found when deserializing the JSON string into TaskInput with oneOf schemas: OnDemandDateUtilsInput, ScheduleDateUtilsInput, ShopifyInput, StreamingUtilsInput. Details: "
84+
"No match found when deserializing the JSON string into TaskInput with oneOf schemas: DockerStreamsInput, ShopifyInput, StreamingInput. Details: "
10985
+ ", ".join(error_messages)
11086
)
11187

algoliasearch/ingestion/models/transformation.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,9 @@ class Transformation(BaseModel):
2525
name: StrictStr = Field(
2626
description="The uniquely identified name of your transformation."
2727
)
28-
description: StrictStr = Field(
29-
description="A descriptive name for your transformation of what it does."
28+
description: Optional[StrictStr] = Field(
29+
default=None,
30+
description="A descriptive name for your transformation of what it does.",
3031
)
3132
created_at: StrictStr = Field(
3233
description="Date of creation in RFC 3339 format.", alias="createdAt"

algoliasearch/ingestion/models/transformation_create.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from __future__ import annotations
88

99
from json import loads
10-
from typing import Any, Dict, Self
10+
from typing import Any, Dict, Optional, Self
1111

1212
from pydantic import BaseModel, ConfigDict, Field, StrictStr
1313

@@ -21,8 +21,9 @@ class TransformationCreate(BaseModel):
2121
name: StrictStr = Field(
2222
description="The uniquely identified name of your transformation."
2323
)
24-
description: StrictStr = Field(
25-
description="A descriptive name for your transformation of what it does."
24+
description: Optional[StrictStr] = Field(
25+
default=None,
26+
description="A descriptive name for your transformation of what it does.",
2627
)
2728

2829
model_config = ConfigDict(

algoliasearch/search/client.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
from algoliasearch.search.models.batch_response import BatchResponse
4343
from algoliasearch.search.models.batch_write_params import BatchWriteParams
4444
from algoliasearch.search.models.browse_params import BrowseParams
45+
from algoliasearch.search.models.browse_params_object import BrowseParamsObject
4546
from algoliasearch.search.models.browse_response import BrowseResponse
4647
from algoliasearch.search.models.created_at_response import CreatedAtResponse
4748
from algoliasearch.search.models.delete_api_key_response import DeleteApiKeyResponse
@@ -313,7 +314,7 @@ async def browse_objects(
313314
self,
314315
index_name: str,
315316
aggregator: Optional[Callable[[BrowseResponse], None]],
316-
browse_params: Optional[BrowseParams] = None,
317+
browse_params: Optional[BrowseParamsObject] = BrowseParamsObject(),
317318
request_options: Optional[Union[dict, RequestOptions]] = None,
318319
) -> BrowseResponse:
319320
"""

0 commit comments

Comments
 (0)