Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 12 additions & 12 deletions .speakeasy/workflow.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2,35 +2,35 @@ speakeasyVersion: 1.525.2
sources:
Gusto-App-Int-OAS:
sourceNamespace: gusto-app-int-oas
sourceRevisionDigest: sha256:146394ace1f2364d29972b713f4c983469873146b72b8e440e4c85a116118413
sourceBlobDigest: sha256:928c472ebcc8603189dec96605686c09586dbc5e8f76169a7ca59a1c3cf777d5
sourceRevisionDigest: sha256:689628279a41eeb057e1c7afdca8152784bd5f9c2b58efa4bc1665fc4a209577
sourceBlobDigest: sha256:81ba6d3af1a240459cf53438bb3b5b518d869062b7dd32abfa212c70952b5886
tags:
- latest
- speakeasy-sdk-regen-1742257375
- speakeasy-sdk-regen-1743553451
- "2024-04-01"
Gusto-OAS:
sourceNamespace: gusto-oas
sourceRevisionDigest: sha256:058c4e660dd4b27a1cd8a068429a5239a71a1b5b365fde8544362ffcf28c2939
sourceBlobDigest: sha256:4c5a52b64a2132d394b1fae941027466dcf804b8de2d8e7995eeb16a6f9a2392
sourceRevisionDigest: sha256:20cf22a6e926e505aa744b6c012c764f2add3299c5a5fd4f623162b518b3c9b6
sourceBlobDigest: sha256:a5d5ddef31610735f102cde75d6c827223f5382ebbd680161128fd7e2b242c36
tags:
- latest
- speakeasy-sdk-regen-1742257375
- speakeasy-sdk-regen-1743553451
- "2024-04-01"
targets:
gusto:
source: Gusto-OAS
sourceNamespace: gusto-oas
sourceRevisionDigest: sha256:058c4e660dd4b27a1cd8a068429a5239a71a1b5b365fde8544362ffcf28c2939
sourceBlobDigest: sha256:4c5a52b64a2132d394b1fae941027466dcf804b8de2d8e7995eeb16a6f9a2392
sourceRevisionDigest: sha256:20cf22a6e926e505aa744b6c012c764f2add3299c5a5fd4f623162b518b3c9b6
sourceBlobDigest: sha256:a5d5ddef31610735f102cde75d6c827223f5382ebbd680161128fd7e2b242c36
codeSamplesNamespace: gusto-oas-python-code-samples
codeSamplesRevisionDigest: sha256:a02d9747808931b1ac9832630609b77df58001e95aae6f66f0d0b535b2e5a243
codeSamplesRevisionDigest: sha256:0a063a27ea60e9873d6294ed5ec3c241d735406c892fbe9df2a4a8b0dc93fc49
gusto-app-int:
source: Gusto-App-Int-OAS
sourceNamespace: gusto-app-int-oas
sourceRevisionDigest: sha256:146394ace1f2364d29972b713f4c983469873146b72b8e440e4c85a116118413
sourceBlobDigest: sha256:928c472ebcc8603189dec96605686c09586dbc5e8f76169a7ca59a1c3cf777d5
sourceRevisionDigest: sha256:689628279a41eeb057e1c7afdca8152784bd5f9c2b58efa4bc1665fc4a209577
sourceBlobDigest: sha256:81ba6d3af1a240459cf53438bb3b5b518d869062b7dd32abfa212c70952b5886
codeSamplesNamespace: gusto-app-int-oas-python-code-samples
codeSamplesRevisionDigest: sha256:f13e0c32f6a3382d3dd1046c8ba164778440942d263cb02d201f05578c89462c
codeSamplesRevisionDigest: sha256:1f6740fe62454346fb6432f61c3eb830a5a5f7a02686cd212b41b925be25c440
workflow:
workflowVersion: 1.0.0
speakeasyVersion: latest
Expand Down
12 changes: 11 additions & 1 deletion RELEASES.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,4 +58,14 @@ Based on:
### Generated
- [python v0.2.2] gusto_app_int
### Releases
- [PyPI v0.2.2] https://pypi.org/project/gusto_app_integration/0.2.2 - gusto_app_int
- [PyPI v0.2.2] https://pypi.org/project/gusto_app_integration/0.2.2 - gusto_app_int

## 2025-04-03 00:23:18
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.525.2 (2.562.3) https://github.com/speakeasy-api/speakeasy
### Generated
- [python v0.2.3] gusto_app_int
### Releases
- [PyPI v0.2.3] https://pypi.org/project/gusto_app_integration/0.2.3 - gusto_app_int
6 changes: 3 additions & 3 deletions gusto_app_int/.speakeasy/gen.lock
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
lockVersion: 2.0.0
id: 307f4640-0d05-4c9e-b275-cb7fc716aa23
management:
docChecksum: 78dbfa21931768c6fe27a77e45ba47a1
docChecksum: 4c5d2f1216a28f6762e454df8bdcc054
docVersion: "2024-04-01"
speakeasyVersion: 1.525.2
generationVersion: 2.562.3
releaseVersion: 0.2.2
configChecksum: c99a9a504eb21dcd8712f151b9512847
releaseVersion: 0.2.3
configChecksum: 1526a81640ebb32b6b92729d14d28fc0
repoURL: https://github.com/Gusto/gusto-python-client.git
repoSubDirectory: gusto_app_int
installationURL: https://github.com/Gusto/gusto-python-client.git#subdirectory=gusto_app_int
Expand Down
2 changes: 1 addition & 1 deletion gusto_app_int/.speakeasy/gen.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ generation:
oAuth2ClientCredentialsEnabled: true
oAuth2PasswordEnabled: true
python:
version: 0.2.2
version: 0.2.3
additionalDependencies:
dev: {}
main: {}
Expand Down
2 changes: 1 addition & 1 deletion gusto_app_int/docs/models/metadatawithmultipleentities.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ multiple entities

| Field | Type | Required | Description |
| ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ |
| `entities` | List[[models.MetadataWithOneEntity](../models/metadatawithoneentity.md)] | :heavy_minus_sign: | N/A |
| `entities` | List[[models.MetadataWithOneEntity](../models/metadatawithoneentity.md)] | :heavy_check_mark: | N/A |
8 changes: 4 additions & 4 deletions gusto_app_int/docs/models/metadatawithoneentity.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ single entity
| ------------------------------------------------- | ------------------------------------------------- | ------------------------------------------------- | ------------------------------------------------- |
| `entity_type` | *Optional[str]* | :heavy_minus_sign: | Name of the entity that the error corresponds to. |
| `entity_uuid` | *Optional[str]* | :heavy_minus_sign: | Unique identifier for the entity. |
| `valid_from` | *Optional[str]* | :heavy_minus_sign: | N/A |
| `valid_up_to` | *Optional[str]* | :heavy_minus_sign: | N/A |
| `key` | *Optional[str]* | :heavy_minus_sign: | N/A |
| `state` | *Optional[str]* | :heavy_minus_sign: | N/A |
| `valid_from` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A |
| `valid_up_to` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A |
| `key` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A |
| `state` | *OptionalNullable[str]* | :heavy_minus_sign: | N/A |
| `__pydantic_extra__` | Dict[str, *Any*] | :heavy_minus_sign: | N/A |
2 changes: 1 addition & 1 deletion gusto_app_int/docs/models/primarysignatory.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ The primary signatory of the company.
| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- |
| `uuid` | *Optional[str]* | :heavy_minus_sign: | The UUID of the company's primary signatory. |
| `first_name` | *Optional[str]* | :heavy_minus_sign: | The company's primary signatory's first name. |
| `middle_initial` | *Optional[str]* | :heavy_minus_sign: | The company's primary signatory's middle initial. |
| `middle_initial` | *OptionalNullable[str]* | :heavy_minus_sign: | The company's primary signatory's middle initial. |
| `last_name` | *Optional[str]* | :heavy_minus_sign: | The company's primary signatory's last name. |
| `phone` | *Optional[str]* | :heavy_minus_sign: | The company's primary signatory's phone number. |
| `email` | *Optional[str]* | :heavy_minus_sign: | The company's primary signatory's email address. |
Expand Down
2 changes: 1 addition & 1 deletion gusto_app_int/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "gusto_app_integration"
version = "0.2.2"
version = "0.2.3"
description = "Python Client SDK Generated by Speakeasy."
authors = [{ name = "Speakeasy" },]
readme = "README-PYPI.md"
Expand Down
4 changes: 2 additions & 2 deletions gusto_app_int/src/gusto_app_integration/_version.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
import importlib.metadata

__title__: str = "gusto_app_integration"
__version__: str = "0.2.2"
__version__: str = "0.2.3"
__openapi_doc_version__: str = "2024-04-01"
__gen_version__: str = "2.562.3"
__user_agent__: str = (
"speakeasy-sdk/python 0.2.2 2.562.3 2024-04-01 gusto_app_integration"
"speakeasy-sdk/python 0.2.3 2.562.3 2024-04-01 gusto_app_integration"
)

try:
Expand Down
42 changes: 40 additions & 2 deletions gusto_app_int/src/gusto_app_integration/models/company.py
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ class PrimarySignatoryTypedDict(TypedDict):
r"""The UUID of the company's primary signatory."""
first_name: NotRequired[str]
r"""The company's primary signatory's first name."""
middle_initial: NotRequired[str]
middle_initial: NotRequired[Nullable[str]]
r"""The company's primary signatory's middle initial."""
last_name: NotRequired[str]
r"""The company's primary signatory's last name."""
Expand All @@ -215,7 +215,7 @@ class PrimarySignatory(BaseModel):
first_name: Optional[str] = None
r"""The company's primary signatory's first name."""

middle_initial: Optional[str] = None
middle_initial: OptionalNullable[str] = UNSET
r"""The company's primary signatory's middle initial."""

last_name: Optional[str] = None
Expand All @@ -230,6 +230,44 @@ class PrimarySignatory(BaseModel):
home_address: Optional[HomeAddress] = None
r"""The company's primary signatory's home address."""

@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = [
"uuid",
"first_name",
"middle_initial",
"last_name",
"phone",
"email",
"home_address",
]
nullable_fields = ["middle_initial"]
null_default_fields = []

serialized = handler(self)

m = {}

for n, f in self.model_fields.items():
k = f.alias or n
val = serialized.get(k)
serialized.pop(k, None)

optional_nullable = k in optional_fields and k in nullable_fields
is_set = (
self.__pydantic_fields_set__.intersection({n})
or k in null_default_fields
) # pylint: disable=no-member

if val is not None and val != UNSET_SENTINEL:
m[k] = val
elif val != UNSET_SENTINEL and (
not k in optional_fields or (optional_nullable and is_set)
):
m[k] = val

return m


class PrimaryPayrollAdminTypedDict(TypedDict):
r"""The primary payroll admin of the company."""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,17 @@
MetadataWithOneEntityTypedDict,
)
from gusto_app_integration.types import BaseModel
from typing import List, Optional
from typing_extensions import NotRequired, TypedDict
from typing import List
from typing_extensions import TypedDict


class MetadataWithMultipleEntitiesTypedDict(TypedDict):
r"""multiple entities"""

entities: NotRequired[List[MetadataWithOneEntityTypedDict]]
entities: List[MetadataWithOneEntityTypedDict]


class MetadataWithMultipleEntities(BaseModel):
r"""multiple entities"""

entities: Optional[List[MetadataWithOneEntity]] = None
entities: List[MetadataWithOneEntity]
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from gusto_app_integration.types import BaseModel
from gusto_app_integration.types import (
BaseModel,
Nullable,
OptionalNullable,
UNSET,
UNSET_SENTINEL,
)
import pydantic
from pydantic import ConfigDict
from pydantic import ConfigDict, model_serializer
from typing import Any, Dict, Optional
from typing_extensions import NotRequired, TypedDict

Expand All @@ -15,10 +21,10 @@ class MetadataWithOneEntityTypedDict(TypedDict):
r"""Name of the entity that the error corresponds to."""
entity_uuid: NotRequired[str]
r"""Unique identifier for the entity."""
valid_from: NotRequired[str]
valid_up_to: NotRequired[str]
key: NotRequired[str]
state: NotRequired[str]
valid_from: NotRequired[Nullable[str]]
valid_up_to: NotRequired[Nullable[str]]
key: NotRequired[Nullable[str]]
state: NotRequired[Nullable[str]]


class MetadataWithOneEntity(BaseModel):
Expand All @@ -35,13 +41,13 @@ class MetadataWithOneEntity(BaseModel):
entity_uuid: Optional[str] = None
r"""Unique identifier for the entity."""

valid_from: Optional[str] = None
valid_from: OptionalNullable[str] = UNSET

valid_up_to: Optional[str] = None
valid_up_to: OptionalNullable[str] = UNSET

key: Optional[str] = None
key: OptionalNullable[str] = UNSET

state: Optional[str] = None
state: OptionalNullable[str] = UNSET

@property
def additional_properties(self):
Expand All @@ -50,3 +56,43 @@ def additional_properties(self):
@additional_properties.setter
def additional_properties(self, value):
self.__pydantic_extra__ = value # pyright: ignore[reportIncompatibleVariableOverride]

@model_serializer(mode="wrap")
def serialize_model(self, handler):
optional_fields = [
"entity_type",
"entity_uuid",
"valid_from",
"valid_up_to",
"key",
"state",
]
nullable_fields = ["valid_from", "valid_up_to", "key", "state"]
null_default_fields = []

serialized = handler(self)

m = {}

for n, f in self.model_fields.items():
k = f.alias or n
val = serialized.get(k)
serialized.pop(k, None)

optional_nullable = k in optional_fields and k in nullable_fields
is_set = (
self.__pydantic_fields_set__.intersection({n})
or k in null_default_fields
) # pylint: disable=no-member

if val is not None and val != UNSET_SENTINEL:
m[k] = val
elif val != UNSET_SENTINEL and (
not k in optional_fields or (optional_nullable and is_set)
):
m[k] = val

for k, v in serialized.items():
m[k] = v

return m
6 changes: 3 additions & 3 deletions gusto_embedded/.speakeasy/gen.lock
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
lockVersion: 2.0.0
id: f70034eb-4870-4b8d-aeb4-4c71b6c1ec45
management:
docChecksum: 29004e8f8da002dc3badd2a54c0d18f3
docChecksum: 9b5f6791f932c112cce1dbd387fca945
docVersion: "2024-04-01"
speakeasyVersion: 1.525.2
generationVersion: 2.562.3
releaseVersion: 0.2.2
configChecksum: 09952e3da8ac446bf4af2a35bc91a639
releaseVersion: 0.2.3
configChecksum: cc6c24b6f3b84eaa0f761e5fb4c1e429
repoURL: https://github.com/Gusto/gusto-python-client.git
repoSubDirectory: gusto_embedded
installationURL: https://github.com/Gusto/gusto-python-client.git#subdirectory=gusto_embedded
Expand Down
2 changes: 1 addition & 1 deletion gusto_embedded/.speakeasy/gen.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ generation:
oAuth2ClientCredentialsEnabled: true
oAuth2PasswordEnabled: true
python:
version: 0.2.2
version: 0.2.3
additionalDependencies:
dev: {}
main: {}
Expand Down
2 changes: 1 addition & 1 deletion gusto_embedded/docs/models/metadatawithmultipleentities.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ multiple entities

| Field | Type | Required | Description |
| ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ |
| `entities` | List[[models.MetadataWithOneEntity](../models/metadatawithoneentity.md)] | :heavy_minus_sign: | N/A |
| `entities` | List[[models.MetadataWithOneEntity](../models/metadatawithoneentity.md)] | :heavy_check_mark: | N/A |
Loading