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
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.12.1"
".": "0.12.2"
}
8 changes: 4 additions & 4 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 20
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/azure/partnermax-0c2a3d56340127842c8ff928074b12d81705700b06b497d6965138738b28b656.yml
openapi_spec_hash: 515afa9ff78787ae666a539d452d5d35
config_hash: a9bb2c41f2e0cabac79eda1df90a1445
configured_endpoints: 21
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/azure/partnermax-fa73d56cb03e02b0bf904b1336512bcdef94150eb14ecd514ef709214608d69f.yml
openapi_spec_hash: 5b05f6d46fc6d51dcd5b9930a6fc29ba
config_hash: 085d04841ad5a779fb40c5000448d9d9
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
# Changelog

## 0.12.2 (2026-06-28)

Full Changelog: [v0.12.1...v0.12.2](https://github.com/DealerMax-app/partnermax-python/compare/v0.12.1...v0.12.2)

### Bug Fixes

* expose dealer create in SDK ([db51aff](https://github.com/DealerMax-app/partnermax-python/commit/db51aff9ba28664a037bcbfc6ba0a0d9d486e49d))

## 0.12.1 (2026-06-28)

Full Changelog: [v0.12.0...v0.12.1](https://github.com/DealerMax-app/partnermax-python/compare/v0.12.0...v0.12.1)
Expand Down
3 changes: 2 additions & 1 deletion api.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,12 @@ Methods:
Types:

```python
from partnermax.types import DealerDetail, DealerSummary
from partnermax.types import DealerDetail, DealerSummary, PartnerDealerResponse
```

Methods:

- <code title="post /api/partner/dealers">client.dealers.<a href="./src/partnermax/resources/dealers/dealers.py">create</a>(\*\*<a href="src/partnermax/types/dealer_create_params.py">params</a>) -> <a href="./src/partnermax/types/partner_dealer_response.py">PartnerDealerResponse</a></code>
- <code title="get /v1/dealers/{dealer_id}">client.dealers.<a href="./src/partnermax/resources/dealers/dealers.py">retrieve</a>(dealer_id) -> <a href="./src/partnermax/types/dealer_detail.py">DealerDetail</a></code>
- <code title="patch /v1/dealers/{dealer_id}">client.dealers.<a href="./src/partnermax/resources/dealers/dealers.py">update</a>(dealer_id, \*\*<a href="src/partnermax/types/dealer_update_params.py">params</a>) -> <a href="./src/partnermax/types/dealer_detail.py">DealerDetail</a></code>
- <code title="get /v1/dealers">client.dealers.<a href="./src/partnermax/resources/dealers/dealers.py">list</a>(\*\*<a href="src/partnermax/types/dealer_list_params.py">params</a>) -> <a href="./src/partnermax/types/dealer_summary.py">SyncCursorPage[DealerSummary]</a></code>
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "partnermax"
version = "0.12.1"
version = "0.12.2"
description = "The official Python library for the partnermax API"
dynamic = ["readme"]
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion src/partnermax/_version.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

__title__ = "partnermax"
__version__ = "0.12.1" # x-release-please-version
__version__ = "0.12.2" # x-release-please-version
125 changes: 123 additions & 2 deletions src/partnermax/resources/dealers/dealers.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@

from __future__ import annotations

from typing import Dict, Optional
from typing import Dict, Union, Optional
from typing_extensions import Literal

import httpx

from ...types import dealer_list_params, dealer_update_params
from ...types import dealer_list_params, dealer_create_params, dealer_update_params
from .nlt.nlt import (
NltResource,
AsyncNltResource,
Expand Down Expand Up @@ -46,6 +46,7 @@
)
from ...types.dealer_detail import DealerDetail
from ...types.dealer_summary import DealerSummary
from ...types.partner_dealer_response import PartnerDealerResponse

__all__ = ["DealersResource", "AsyncDealersResource"]

Expand Down Expand Up @@ -88,6 +89,60 @@ def with_streaming_response(self) -> DealersResourceWithStreamingResponse:
"""
return DealersResourceWithStreamingResponse(self)

def create(
self,
*,
external_dealer_id: str,
activate: bool | Omit = omit,
metadata: Dict[str, Union[str, float, bool, None]] | Omit = omit,
idempotency_key: str | Omit = omit,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> PartnerDealerResponse:
"""Create a partner-owned opaque dealer reference.

SDK users call
`client.dealers.create(...)`; the generated client sends this request to the
core-owned `/api/partner/dealers` route.

Args:
external_dealer_id: Partner-owned opaque dealer id. This becomes the dealer_id used by vehicle and
NLT SDK calls.

activate: When true, the dealer can immediately receive vehicle/NLT operations. When
false, create the registry row but keep it suspended until activated.

metadata: Optional scalar partner-side correlation metadata.

extra_headers: Send extra headers

extra_query: Add additional query parameters to the request

extra_body: Add additional JSON properties to the request

timeout: Override the client-level default timeout for this request, in seconds
"""
extra_headers = {**strip_not_given({"Idempotency-Key": idempotency_key}), **(extra_headers or {})}
return self._post(
"/api/partner/dealers",
body=maybe_transform(
{
"external_dealer_id": external_dealer_id,
"activate": activate,
"metadata": metadata,
},
dealer_create_params.DealerCreateParams,
),
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
cast_to=PartnerDealerResponse,
)

def retrieve(
self,
dealer_id: str,
Expand Down Expand Up @@ -301,6 +356,60 @@ def with_streaming_response(self) -> AsyncDealersResourceWithStreamingResponse:
"""
return AsyncDealersResourceWithStreamingResponse(self)

async def create(
self,
*,
external_dealer_id: str,
activate: bool | Omit = omit,
metadata: Dict[str, Union[str, float, bool, None]] | Omit = omit,
idempotency_key: str | Omit = omit,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
extra_headers: Headers | None = None,
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> PartnerDealerResponse:
"""Create a partner-owned opaque dealer reference.

SDK users call
`client.dealers.create(...)`; the generated client sends this request to the
core-owned `/api/partner/dealers` route.

Args:
external_dealer_id: Partner-owned opaque dealer id. This becomes the dealer_id used by vehicle and
NLT SDK calls.

activate: When true, the dealer can immediately receive vehicle/NLT operations. When
false, create the registry row but keep it suspended until activated.

metadata: Optional scalar partner-side correlation metadata.

extra_headers: Send extra headers

extra_query: Add additional query parameters to the request

extra_body: Add additional JSON properties to the request

timeout: Override the client-level default timeout for this request, in seconds
"""
extra_headers = {**strip_not_given({"Idempotency-Key": idempotency_key}), **(extra_headers or {})}
return await self._post(
"/api/partner/dealers",
body=await async_maybe_transform(
{
"external_dealer_id": external_dealer_id,
"activate": activate,
"metadata": metadata,
},
dealer_create_params.DealerCreateParams,
),
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
cast_to=PartnerDealerResponse,
)

async def retrieve(
self,
dealer_id: str,
Expand Down Expand Up @@ -480,6 +589,9 @@ class DealersResourceWithRawResponse:
def __init__(self, dealers: DealersResource) -> None:
self._dealers = dealers

self.create = to_raw_response_wrapper(
dealers.create,
)
self.retrieve = to_raw_response_wrapper(
dealers.retrieve,
)
Expand Down Expand Up @@ -514,6 +626,9 @@ class AsyncDealersResourceWithRawResponse:
def __init__(self, dealers: AsyncDealersResource) -> None:
self._dealers = dealers

self.create = async_to_raw_response_wrapper(
dealers.create,
)
self.retrieve = async_to_raw_response_wrapper(
dealers.retrieve,
)
Expand Down Expand Up @@ -548,6 +663,9 @@ class DealersResourceWithStreamingResponse:
def __init__(self, dealers: DealersResource) -> None:
self._dealers = dealers

self.create = to_streamed_response_wrapper(
dealers.create,
)
self.retrieve = to_streamed_response_wrapper(
dealers.retrieve,
)
Expand Down Expand Up @@ -582,6 +700,9 @@ class AsyncDealersResourceWithStreamingResponse:
def __init__(self, dealers: AsyncDealersResource) -> None:
self._dealers = dealers

self.create = async_to_streamed_response_wrapper(
dealers.create,
)
self.retrieve = async_to_streamed_response_wrapper(
dealers.retrieve,
)
Expand Down
2 changes: 2 additions & 0 deletions src/partnermax/types/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,6 @@
from .key_list_response import KeyListResponse as KeyListResponse
from .dealer_list_params import DealerListParams as DealerListParams
from .key_issue_response import KeyIssueResponse as KeyIssueResponse
from .dealer_create_params import DealerCreateParams as DealerCreateParams
from .dealer_update_params import DealerUpdateParams as DealerUpdateParams
from .partner_dealer_response import PartnerDealerResponse as PartnerDealerResponse
29 changes: 29 additions & 0 deletions src/partnermax/types/dealer_create_params.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from __future__ import annotations

from typing import Dict, Union
from typing_extensions import Required, Annotated, TypedDict

from .._utils import PropertyInfo

__all__ = ["DealerCreateParams"]


class DealerCreateParams(TypedDict, total=False):
external_dealer_id: Required[str]
"""Partner-owned opaque dealer id.

This becomes the dealer_id used by vehicle and NLT SDK calls.
"""

activate: bool
"""When true, the dealer can immediately receive vehicle/NLT operations.

When false, create the registry row but keep it suspended until activated.
"""

metadata: Dict[str, Union[str, float, bool, None]]
"""Optional scalar partner-side correlation metadata."""

idempotency_key: Annotated[str, PropertyInfo(alias="Idempotency-Key")]
32 changes: 32 additions & 0 deletions src/partnermax/types/partner_dealer_response.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from typing import Optional
from datetime import datetime
from typing_extensions import Literal

from .._models import BaseModel

__all__ = ["PartnerDealerResponse"]


class PartnerDealerResponse(BaseModel):
"""Partner dealer registry response.

Use dealer_id as the path parameter for vehicle and NLT SDK calls.
"""

created_at: datetime

dealer_id: str
"""The partner-owned external dealer id."""

partner_id: str

public_surfaces_enabled: bool

status: Literal["active", "suspended", "revoked"]

updated_at: datetime

created: Optional[bool] = None
"""True only when this request inserted the registry row."""
Loading
Loading