Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Adds support for parameter components and parameter references. #615

Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

from typing import Type

from .buildings import BuildingsEndpoints
from .default import DefaultEndpoints
from .jamf_connect import JamfConnectEndpoints
from .location import LocationEndpoints
from .parameters import ParametersEndpoints
from .responses import ResponsesEndpoints
Expand Down Expand Up @@ -39,3 +41,11 @@ def location(cls) -> Type[LocationEndpoints]:
@classmethod
def true_(cls) -> Type[True_Endpoints]:
return True_Endpoints

@classmethod
def buildings(cls) -> Type[BuildingsEndpoints]:
return BuildingsEndpoints

@classmethod
def jamf_connect(cls) -> Type[JamfConnectEndpoints]:
return JamfConnectEndpoints
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
""" Contains methods for accessing the API Endpoints """

import types

from . import get_v1_buildings


class BuildingsEndpoints:
@classmethod
def get_v1_buildings(cls) -> types.ModuleType:
"""
Search for sorted and paged buildings
"""
return get_v1_buildings
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
""" Contains methods for accessing the API Endpoints """

import types

from . import get_v1_jamf_connect_history


class JamfConnectEndpoints:
@classmethod
def get_v1_jamf_connect_history(cls) -> types.ModuleType:
"""
Get Jamf Connect history

"""
return get_v1_jamf_connect_history
Original file line number Diff line number Diff line change
@@ -0,0 +1,203 @@
from typing import Any, Dict, List, Optional, Union

import httpx

from ...client import Client
from ...models.building_search_results import BuildingSearchResults
from ...types import UNSET, Response, Unset


def _get_kwargs(
*,
client: Client,
page: int = 0,
page_size: int = 100,
sort: Union[Unset, None, List[str]] = UNSET,
filter_: Union[Unset, None, str] = "",
) -> Dict[str, Any]:
url = "{}/v1/buildings".format(client.base_url)

headers: Dict[str, str] = client.get_headers()
cookies: Dict[str, Any] = client.get_cookies()

params: Dict[str, Any] = {}
params["page"] = page

params["page-size"] = page_size

json_sort: Union[Unset, None, List[str]] = UNSET
if not isinstance(sort, Unset):
if sort is None:
json_sort = None
else:
json_sort = sort

params["sort"] = json_sort

params["filter"] = filter_

params = {k: v for k, v in params.items() if v is not UNSET and v is not None}

return {
"method": "get",
"url": url,
"headers": headers,
"cookies": cookies,
"timeout": client.get_timeout(),
"params": params,
}


def _parse_response(*, response: httpx.Response) -> Optional[BuildingSearchResults]:
if response.status_code == 200:
response_200 = BuildingSearchResults.from_dict(response.json())

return response_200
return None


def _build_response(*, response: httpx.Response) -> Response[BuildingSearchResults]:
return Response(
status_code=response.status_code,
content=response.content,
headers=response.headers,
parsed=_parse_response(response=response),
)


def sync_detailed(
*,
client: Client,
page: int = 0,
page_size: int = 100,
sort: Union[Unset, None, List[str]] = UNSET,
filter_: Union[Unset, None, str] = "",
) -> Response[BuildingSearchResults]:
"""Search for sorted and paged Buildings

Search for sorted and paged buildings

Args:
page (int):
page_size (int): Default: 100.
sort (Union[Unset, None, List[str]]):
filter_ (Union[Unset, None, str]): Default: ''.

Returns:
Response[BuildingSearchResults]
"""

kwargs = _get_kwargs(
client=client,
page=page,
page_size=page_size,
sort=sort,
filter_=filter_,
)

response = httpx.request(
verify=client.verify_ssl,
**kwargs,
)

return _build_response(response=response)


def sync(
*,
client: Client,
page: int = 0,
page_size: int = 100,
sort: Union[Unset, None, List[str]] = UNSET,
filter_: Union[Unset, None, str] = "",
) -> Optional[BuildingSearchResults]:
"""Search for sorted and paged Buildings

Search for sorted and paged buildings

Args:
page (int):
page_size (int): Default: 100.
sort (Union[Unset, None, List[str]]):
filter_ (Union[Unset, None, str]): Default: ''.

Returns:
Response[BuildingSearchResults]
"""

return sync_detailed(
client=client,
page=page,
page_size=page_size,
sort=sort,
filter_=filter_,
).parsed


async def asyncio_detailed(
*,
client: Client,
page: int = 0,
page_size: int = 100,
sort: Union[Unset, None, List[str]] = UNSET,
filter_: Union[Unset, None, str] = "",
) -> Response[BuildingSearchResults]:
"""Search for sorted and paged Buildings

Search for sorted and paged buildings

Args:
page (int):
page_size (int): Default: 100.
sort (Union[Unset, None, List[str]]):
filter_ (Union[Unset, None, str]): Default: ''.

Returns:
Response[BuildingSearchResults]
"""

kwargs = _get_kwargs(
client=client,
page=page,
page_size=page_size,
sort=sort,
filter_=filter_,
)

async with httpx.AsyncClient(verify=client.verify_ssl) as _client:
response = await _client.request(**kwargs)

return _build_response(response=response)


async def asyncio(
*,
client: Client,
page: int = 0,
page_size: int = 100,
sort: Union[Unset, None, List[str]] = UNSET,
filter_: Union[Unset, None, str] = "",
) -> Optional[BuildingSearchResults]:
"""Search for sorted and paged Buildings

Search for sorted and paged buildings

Args:
page (int):
page_size (int): Default: 100.
sort (Union[Unset, None, List[str]]):
filter_ (Union[Unset, None, str]): Default: ''.

Returns:
Response[BuildingSearchResults]
"""

return (
await asyncio_detailed(
client=client,
page=page,
page_size=page_size,
sort=sort,
filter_=filter_,
)
).parsed
Loading