Skip to content

Commit 4f1f774

Browse files
author
APIs and Common Services team
committed
Automated SDK update
This updates the SDK from internal repo commit segmentio/public-api@ed3c8598.
1 parent 3d961dd commit 4f1f774

File tree

8 files changed

+205
-16
lines changed

8 files changed

+205
-16
lines changed

segment_public_api/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@
101101
from segment_public_api.models.audience_options_with_lookback import AudienceOptionsWithLookback
102102
from segment_public_api.models.audience_preview import AudiencePreview
103103
from segment_public_api.models.audience_preview_account_result import AudiencePreviewAccountResult
104+
from segment_public_api.models.audience_preview_entities_result import AudiencePreviewEntitiesResult
104105
from segment_public_api.models.audience_preview_identifier import AudiencePreviewIdentifier
105106
from segment_public_api.models.audience_preview_profile_result import AudiencePreviewProfileResult
106107
from segment_public_api.models.audience_preview_result import AudiencePreviewResult
@@ -507,6 +508,7 @@
507508
from segment_public_api.models.preview_destination_filter_v1 import PreviewDestinationFilterV1
508509
from segment_public_api.models.preview_destination_filter_v1_input import PreviewDestinationFilterV1Input
509510
from segment_public_api.models.preview_destination_filter_v1_output import PreviewDestinationFilterV1Output
511+
from segment_public_api.models.profile import Profile
510512
from segment_public_api.models.profiles_warehouse_alpha import ProfilesWarehouseAlpha
511513
from segment_public_api.models.property_rename_beta import PropertyRenameBeta
512514
from segment_public_api.models.property_rename_v1 import PropertyRenameV1

segment_public_api/models/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
from segment_public_api.models.audience_options_with_lookback import AudienceOptionsWithLookback
5555
from segment_public_api.models.audience_preview import AudiencePreview
5656
from segment_public_api.models.audience_preview_account_result import AudiencePreviewAccountResult
57+
from segment_public_api.models.audience_preview_entities_result import AudiencePreviewEntitiesResult
5758
from segment_public_api.models.audience_preview_identifier import AudiencePreviewIdentifier
5859
from segment_public_api.models.audience_preview_profile_result import AudiencePreviewProfileResult
5960
from segment_public_api.models.audience_preview_result import AudiencePreviewResult
@@ -460,6 +461,7 @@
460461
from segment_public_api.models.preview_destination_filter_v1 import PreviewDestinationFilterV1
461462
from segment_public_api.models.preview_destination_filter_v1_input import PreviewDestinationFilterV1Input
462463
from segment_public_api.models.preview_destination_filter_v1_output import PreviewDestinationFilterV1Output
464+
from segment_public_api.models.profile import Profile
463465
from segment_public_api.models.profiles_warehouse_alpha import ProfilesWarehouseAlpha
464466
from segment_public_api.models.property_rename_beta import PropertyRenameBeta
465467
from segment_public_api.models.property_rename_v1 import PropertyRenameV1

segment_public_api/models/audience_definition.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import json
2020

2121

22-
22+
from typing import Optional
2323
from pydantic import BaseModel, Field, StrictStr, validator
2424

2525
class AudienceDefinition(BaseModel):
@@ -28,7 +28,8 @@ class AudienceDefinition(BaseModel):
2828
"""
2929
type: StrictStr = Field(..., description="The underlying data type being segmented for this audience. Possible values: users, accounts.")
3030
query: StrictStr = Field(..., description="The query language string defining the audience segmentation criteria. For guidance on using the query language, see the [Segment documentation site](https://segment.com/docs/api/public-api/query-language).")
31-
__properties = ["type", "query"]
31+
target_entity: Optional[StrictStr] = Field(None, alias="targetEntity", description="The target entity slug.")
32+
__properties = ["type", "query", "targetEntity"]
3233

3334
@validator('type')
3435
def type_validate_enum(cls, value):
@@ -74,7 +75,8 @@ def from_dict(cls, obj: dict) -> AudienceDefinition:
7475

7576
_obj = AudienceDefinition.parse_obj({
7677
"type": obj.get("type"),
77-
"query": obj.get("query")
78+
"query": obj.get("query"),
79+
"target_entity": obj.get("targetEntity")
7880
})
7981
return _obj
8082

segment_public_api/models/audience_definition_without_type.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,16 @@
1919
import json
2020

2121

22-
22+
from typing import Optional
2323
from pydantic import BaseModel, Field, StrictStr
2424

2525
class AudienceDefinitionWithoutType(BaseModel):
2626
"""
2727
AudienceDefinitionWithoutType
2828
"""
2929
query: StrictStr = Field(..., description="The query language string defining the audience segmentation criteria. For guidance on using the query language, see the [Segment documentation site](https://segment.com/docs/api/public-api/query-language).")
30-
__properties = ["query"]
30+
target_entity: Optional[StrictStr] = Field(None, alias="targetEntity", description="The target entity slug.")
31+
__properties = ["query", "targetEntity"]
3132

3233
class Config:
3334
"""Pydantic configuration"""
@@ -65,7 +66,8 @@ def from_dict(cls, obj: dict) -> AudienceDefinitionWithoutType:
6566
return AudienceDefinitionWithoutType.parse_obj(obj)
6667

6768
_obj = AudienceDefinitionWithoutType.parse_obj({
68-
"query": obj.get("query")
69+
"query": obj.get("query"),
70+
"target_entity": obj.get("targetEntity")
6971
})
7072
return _obj
7173

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
# coding: utf-8
2+
3+
"""
4+
Segment Public API
5+
6+
The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs. All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace. See the next sections for more information on how to use the Segment Public API.
7+
8+
The version of the OpenAPI document: 58.13.0
9+
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+
22+
from typing import Any, Dict, List, Optional
23+
from pydantic import BaseModel, Field, StrictBool, StrictStr, conlist
24+
from segment_public_api.models.profile import Profile
25+
26+
class AudiencePreviewEntitiesResult(BaseModel):
27+
"""
28+
Result membership object for an audience preview with `audienceType: USERS` or `audienceType: LINKED`. # noqa: E501
29+
"""
30+
id: StrictStr = Field(..., description="The entities associated with the profile. Will only have a value if the audience preview has `audienceType: LINKED` and entities are referenced in the audience preview's definition.")
31+
id_property: StrictStr = Field(..., alias="idProperty", description="The entity primary key column name.")
32+
relationship_slug: StrictStr = Field(..., alias="relationshipSlug", description="The entity relationship slug.")
33+
properties: Optional[Dict[str, Any]] = Field(None, description="Entity properties.")
34+
entities: Optional[Dict[str, Any]] = Field(None, description="Related entities that are one level deeper will only be returned if those entities are referenced in the audience definition.")
35+
profiles: Optional[conlist(Profile)] = Field(None, description="Related list of profiles.")
36+
profiles_truncated: StrictBool = Field(..., alias="profilesTruncated", description="Indicates if only a subset of the profiles associated with the entity were returned.")
37+
__properties = ["id", "idProperty", "relationshipSlug", "properties", "entities", "profiles", "profilesTruncated"]
38+
39+
class Config:
40+
"""Pydantic configuration"""
41+
allow_population_by_field_name = True
42+
validate_assignment = True
43+
44+
def to_str(self) -> str:
45+
"""Returns the string representation of the model using alias"""
46+
return pprint.pformat(self.dict(by_alias=True))
47+
48+
def to_json(self) -> str:
49+
"""Returns the JSON representation of the model using alias"""
50+
return json.dumps(self.to_dict())
51+
52+
@classmethod
53+
def from_json(cls, json_str: str) -> AudiencePreviewEntitiesResult:
54+
"""Create an instance of AudiencePreviewEntitiesResult from a JSON string"""
55+
return cls.from_dict(json.loads(json_str))
56+
57+
def to_dict(self):
58+
"""Returns the dictionary representation of the model using alias"""
59+
_dict = self.dict(by_alias=True,
60+
exclude={
61+
},
62+
exclude_none=True)
63+
# override the default output from pydantic by calling `to_dict()` of each item in profiles (list)
64+
_items = []
65+
if self.profiles:
66+
for _item in self.profiles:
67+
if _item:
68+
_items.append(_item.to_dict())
69+
_dict['profiles'] = _items
70+
return _dict
71+
72+
@classmethod
73+
def from_dict(cls, obj: dict) -> AudiencePreviewEntitiesResult:
74+
"""Create an instance of AudiencePreviewEntitiesResult from a dict"""
75+
if obj is None:
76+
return None
77+
78+
if not isinstance(obj, dict):
79+
return AudiencePreviewEntitiesResult.parse_obj(obj)
80+
81+
_obj = AudiencePreviewEntitiesResult.parse_obj({
82+
"id": obj.get("id"),
83+
"id_property": obj.get("idProperty"),
84+
"relationship_slug": obj.get("relationshipSlug"),
85+
"properties": obj.get("properties"),
86+
"entities": obj.get("entities"),
87+
"profiles": [Profile.from_dict(_item) for _item in obj.get("profiles")] if obj.get("profiles") is not None else None,
88+
"profiles_truncated": obj.get("profilesTruncated")
89+
})
90+
return _obj
91+
92+

segment_public_api/models/audience_preview_result.py

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,12 @@
2222
from typing import Optional
2323
from pydantic import BaseModel, Field, StrictStr, ValidationError, validator
2424
from segment_public_api.models.audience_preview_account_result import AudiencePreviewAccountResult
25+
from segment_public_api.models.audience_preview_entities_result import AudiencePreviewEntitiesResult
2526
from segment_public_api.models.audience_preview_profile_result import AudiencePreviewProfileResult
2627
from typing import Union, Any, List, TYPE_CHECKING
2728
from pydantic import StrictStr, Field
2829

29-
AUDIENCEPREVIEWRESULT_ANY_OF_SCHEMAS = ["AudiencePreviewAccountResult", "AudiencePreviewProfileResult"]
30+
AUDIENCEPREVIEWRESULT_ANY_OF_SCHEMAS = ["AudiencePreviewAccountResult", "AudiencePreviewEntitiesResult", "AudiencePreviewProfileResult"]
3031

3132
class AudiencePreviewResult(BaseModel):
3233
"""
@@ -37,8 +38,10 @@ class AudiencePreviewResult(BaseModel):
3738
anyof_schema_1_validator: Optional[AudiencePreviewAccountResult] = None
3839
# data type: AudiencePreviewProfileResult
3940
anyof_schema_2_validator: Optional[AudiencePreviewProfileResult] = None
41+
# data type: AudiencePreviewEntitiesResult
42+
anyof_schema_3_validator: Optional[AudiencePreviewEntitiesResult] = None
4043
if TYPE_CHECKING:
41-
actual_instance: Union[AudiencePreviewAccountResult, AudiencePreviewProfileResult]
44+
actual_instance: Union[AudiencePreviewAccountResult, AudiencePreviewEntitiesResult, AudiencePreviewProfileResult]
4245
else:
4346
actual_instance: Any
4447
any_of_schemas: List[str] = Field(AUDIENCEPREVIEWRESULT_ANY_OF_SCHEMAS, const=True)
@@ -72,9 +75,15 @@ def actual_instance_must_validate_anyof(cls, v):
7275
else:
7376
return v
7477

78+
# validate data type: AudiencePreviewEntitiesResult
79+
if not isinstance(v, AudiencePreviewEntitiesResult):
80+
error_messages.append(f"Error! Input type `{type(v)}` is not `AudiencePreviewEntitiesResult`")
81+
else:
82+
return v
83+
7584
if error_messages:
7685
# no match
77-
raise ValueError("No match found when setting the actual_instance in AudiencePreviewResult with anyOf schemas: AudiencePreviewAccountResult, AudiencePreviewProfileResult. Details: " + ", ".join(error_messages))
86+
raise ValueError("No match found when setting the actual_instance in AudiencePreviewResult with anyOf schemas: AudiencePreviewAccountResult, AudiencePreviewEntitiesResult, AudiencePreviewProfileResult. Details: " + ", ".join(error_messages))
7887
else:
7988
return v
8089

@@ -99,10 +108,16 @@ def from_json(cls, json_str: str) -> AudiencePreviewResult:
99108
return instance
100109
except (ValidationError, ValueError) as e:
101110
error_messages.append(str(e))
111+
# anyof_schema_3_validator: Optional[AudiencePreviewEntitiesResult] = None
112+
try:
113+
instance.actual_instance = AudiencePreviewEntitiesResult.from_json(json_str)
114+
return instance
115+
except (ValidationError, ValueError) as e:
116+
error_messages.append(str(e))
102117

103118
if error_messages:
104119
# no match
105-
raise ValueError("No match found when deserializing the JSON string into AudiencePreviewResult with anyOf schemas: AudiencePreviewAccountResult, AudiencePreviewProfileResult. Details: " + ", ".join(error_messages))
120+
raise ValueError("No match found when deserializing the JSON string into AudiencePreviewResult with anyOf schemas: AudiencePreviewAccountResult, AudiencePreviewEntitiesResult, AudiencePreviewProfileResult. Details: " + ", ".join(error_messages))
106121
else:
107122
return instance
108123

segment_public_api/models/audience_size.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,23 @@
1919
import json
2020

2121

22-
from typing import Union
22+
from typing import Optional, Union
2323
from pydantic import BaseModel, Field, StrictFloat, StrictInt, StrictStr, validator
2424

2525
class AudienceSize(BaseModel):
2626
"""
2727
AudienceSize
2828
"""
29-
count: Union[StrictFloat, StrictInt] = Field(..., description="The total audience membership count. Refer to the type field to determine the unit for this field (profiles, accounts, etc).")
29+
count: Optional[Union[StrictFloat, StrictInt]] = Field(None, description="The total audience membership count. Refer to the type field to determine the unit for this field (profiles, accounts, etc).")
3030
type: StrictStr = Field(..., description="The unit type for the count(s) being returned.")
31-
__properties = ["count", "type"]
31+
unique_count: Optional[Union[StrictFloat, StrictInt]] = Field(None, alias="uniqueCount", description="The unique audience membership count.")
32+
__properties = ["count", "type", "uniqueCount"]
3233

3334
@validator('type')
3435
def type_validate_enum(cls, value):
3536
"""Validates the enum"""
36-
if value not in ('ACCOUNTS', 'USERS'):
37-
raise ValueError("must be one of enum values ('ACCOUNTS', 'USERS')")
37+
if value not in ('ACCOUNTS', 'ENTITIES', 'USERS'):
38+
raise ValueError("must be one of enum values ('ACCOUNTS', 'ENTITIES', 'USERS')")
3839
return value
3940

4041
class Config:
@@ -74,7 +75,8 @@ def from_dict(cls, obj: dict) -> AudienceSize:
7475

7576
_obj = AudienceSize.parse_obj({
7677
"count": obj.get("count"),
77-
"type": obj.get("type")
78+
"type": obj.get("type"),
79+
"unique_count": obj.get("uniqueCount")
7880
})
7981
return _obj
8082

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# coding: utf-8
2+
3+
"""
4+
Segment Public API
5+
6+
The Segment Public API helps you manage your Segment Workspaces and its resources. You can use the API to perform CRUD (create, read, update, delete) operations at no extra charge. This includes working with resources such as Sources, Destinations, Warehouses, Tracking Plans, and the Segment Destinations and Sources Catalogs. All CRUD endpoints in the API follow REST conventions and use standard HTTP methods. Different URL endpoints represent different resources in a Workspace. See the next sections for more information on how to use the Segment Public API.
7+
8+
The version of the OpenAPI document: 58.13.0
9+
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+
22+
23+
from pydantic import BaseModel, Field, StrictStr
24+
25+
class Profile(BaseModel):
26+
"""
27+
Profile
28+
"""
29+
id: StrictStr = Field(..., description="The id of the profile.")
30+
__properties = ["id"]
31+
32+
class Config:
33+
"""Pydantic configuration"""
34+
allow_population_by_field_name = True
35+
validate_assignment = True
36+
37+
def to_str(self) -> str:
38+
"""Returns the string representation of the model using alias"""
39+
return pprint.pformat(self.dict(by_alias=True))
40+
41+
def to_json(self) -> str:
42+
"""Returns the JSON representation of the model using alias"""
43+
return json.dumps(self.to_dict())
44+
45+
@classmethod
46+
def from_json(cls, json_str: str) -> Profile:
47+
"""Create an instance of Profile from a JSON string"""
48+
return cls.from_dict(json.loads(json_str))
49+
50+
def to_dict(self):
51+
"""Returns the dictionary representation of the model using alias"""
52+
_dict = self.dict(by_alias=True,
53+
exclude={
54+
},
55+
exclude_none=True)
56+
return _dict
57+
58+
@classmethod
59+
def from_dict(cls, obj: dict) -> Profile:
60+
"""Create an instance of Profile from a dict"""
61+
if obj is None:
62+
return None
63+
64+
if not isinstance(obj, dict):
65+
return Profile.parse_obj(obj)
66+
67+
_obj = Profile.parse_obj({
68+
"id": obj.get("id")
69+
})
70+
return _obj
71+
72+

0 commit comments

Comments
 (0)