permitstack 1.0.5__tar.gz → 1.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {permitstack-1.0.5 → permitstack-1.1.0}/PKG-INFO +2 -2
- {permitstack-1.0.5 → permitstack-1.1.0}/README.md +1 -1
- {permitstack-1.0.5 → permitstack-1.1.0}/pyproject.toml +1 -1
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/_version.py +3 -3
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/models/__init__.py +5 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/models/permitdetail.py +6 -0
- permitstack-1.1.0/src/permitstack/models/permitenrichment.py +101 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/models/permitsummary.py +12 -1
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/sdk.py +1 -1
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/utils/requestbodies.py +1 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack.egg-info/PKG-INFO +2 -2
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack.egg-info/SOURCES.txt +1 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/setup.cfg +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/__init__.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/_hooks/__init__.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/_hooks/sdkhooks.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/_hooks/types.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/basesdk.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/contractors.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/errors/__init__.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/errors/httpvalidationerror.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/errors/no_response_error.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/errors/permitstackdefaulterror.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/errors/permitstackerror.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/errors/responsevalidationerror.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/health.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/httpclient.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/models/contractorprofile.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/models/contractorsearchresponse.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/models/contractorsummary.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/models/delete_webhookop.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/models/export_permitsop.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/models/get_contractor_permitsop.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/models/get_contractorop.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/models/get_permitop.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/models/get_permits_by_addressop.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/models/get_property_historyop.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/models/get_webhook_secretop.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/models/permitsearchresponse.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/models/permitstatus.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/models/propertytype.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/models/search_contractorsop.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/models/search_permitsop.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/models/security.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/models/test_webhookop.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/models/validationerror.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/models/webhookcreate.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/permits.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/property_history.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/py.typed +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/sdkconfiguration.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/types/__init__.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/types/base64fileinput.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/types/basemodel.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/utils/__init__.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/utils/annotations.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/utils/datetimes.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/utils/dynamic_imports.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/utils/enums.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/utils/eventstreaming.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/utils/forms.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/utils/headers.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/utils/logger.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/utils/metadata.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/utils/queryparams.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/utils/retries.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/utils/security.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/utils/serializers.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/utils/unmarshal_json_response.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/utils/url.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/utils/values.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack/webhooks.py +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack.egg-info/dependency_links.txt +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack.egg-info/requires.txt +0 -0
- {permitstack-1.0.5 → permitstack-1.1.0}/src/permitstack.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: permitstack
|
|
3
|
-
Version: 1.0
|
|
3
|
+
Version: 1.1.0
|
|
4
4
|
Summary: Official Python SDK for the PermitStack building permit data API.
|
|
5
5
|
Author: PermitStack
|
|
6
6
|
License: Apache-2.0
|
|
@@ -25,7 +25,7 @@ Developer-friendly & type-safe Python SDK specifically catered to leverage *perm
|
|
|
25
25
|
PermitStack:
|
|
26
26
|
## PermitStack Building Permit API
|
|
27
27
|
|
|
28
|
-
Access 39M+ building permits across
|
|
28
|
+
Access 39M+ building permits across 171 active U.S. jurisdictions (plus 19 historical archives), updated daily from official open data portals.
|
|
29
29
|
|
|
30
30
|
### Getting started
|
|
31
31
|
1. Sign up at [permit-stack.com](https://permit-stack.com/#pricing) for a free API key (100 req/day)
|
|
@@ -13,7 +13,7 @@ Developer-friendly & type-safe Python SDK specifically catered to leverage *perm
|
|
|
13
13
|
PermitStack:
|
|
14
14
|
## PermitStack Building Permit API
|
|
15
15
|
|
|
16
|
-
Access 39M+ building permits across
|
|
16
|
+
Access 39M+ building permits across 171 active U.S. jurisdictions (plus 19 historical archives), updated daily from official open data portals.
|
|
17
17
|
|
|
18
18
|
### Getting started
|
|
19
19
|
1. Sign up at [permit-stack.com](https://permit-stack.com/#pricing) for a free API key (100 req/day)
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
import importlib.metadata
|
|
4
4
|
|
|
5
5
|
__title__: str = "permitstack"
|
|
6
|
-
__version__: str = "1.0
|
|
6
|
+
__version__: str = "1.1.0"
|
|
7
7
|
__openapi_doc_version__: str = "1.0.0"
|
|
8
|
-
__gen_version__: str = "2.
|
|
9
|
-
__user_agent__: str = "speakeasy-sdk/python 1.0
|
|
8
|
+
__gen_version__: str = "2.893.0"
|
|
9
|
+
__user_agent__: str = "speakeasy-sdk/python 1.1.0 2.893.0 1.0.0 permitstack"
|
|
10
10
|
|
|
11
11
|
try:
|
|
12
12
|
if __package__ is not None:
|
|
@@ -32,6 +32,7 @@ if TYPE_CHECKING:
|
|
|
32
32
|
GetWebhookSecretRequestTypedDict,
|
|
33
33
|
)
|
|
34
34
|
from .permitdetail import PermitDetail, PermitDetailTypedDict
|
|
35
|
+
from .permitenrichment import PermitEnrichment, PermitEnrichmentTypedDict
|
|
35
36
|
from .permitsearchresponse import (
|
|
36
37
|
PermitSearchResponse,
|
|
37
38
|
PermitSearchResponseTypedDict,
|
|
@@ -85,6 +86,8 @@ __all__ = [
|
|
|
85
86
|
"LocTypedDict",
|
|
86
87
|
"PermitDetail",
|
|
87
88
|
"PermitDetailTypedDict",
|
|
89
|
+
"PermitEnrichment",
|
|
90
|
+
"PermitEnrichmentTypedDict",
|
|
88
91
|
"PermitSearchResponse",
|
|
89
92
|
"PermitSearchResponseTypedDict",
|
|
90
93
|
"PermitStatus",
|
|
@@ -130,6 +133,8 @@ _dynamic_imports: dict[str, str] = {
|
|
|
130
133
|
"GetWebhookSecretRequestTypedDict": ".get_webhook_secretop",
|
|
131
134
|
"PermitDetail": ".permitdetail",
|
|
132
135
|
"PermitDetailTypedDict": ".permitdetail",
|
|
136
|
+
"PermitEnrichment": ".permitenrichment",
|
|
137
|
+
"PermitEnrichmentTypedDict": ".permitenrichment",
|
|
133
138
|
"PermitSearchResponse": ".permitsearchresponse",
|
|
134
139
|
"PermitSearchResponseTypedDict": ".permitsearchresponse",
|
|
135
140
|
"PermitStatus": ".permitstatus",
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
|
+
from .permitenrichment import PermitEnrichment, PermitEnrichmentTypedDict
|
|
4
5
|
from datetime import date
|
|
5
6
|
from permitstack.types import (
|
|
6
7
|
BaseModel,
|
|
@@ -41,6 +42,7 @@ class PermitDetailTypedDict(TypedDict):
|
|
|
41
42
|
jurisdiction_name: NotRequired[Nullable[str]]
|
|
42
43
|
latitude: NotRequired[Nullable[float]]
|
|
43
44
|
longitude: NotRequired[Nullable[float]]
|
|
45
|
+
enrichment: NotRequired[Nullable[PermitEnrichmentTypedDict]]
|
|
44
46
|
contractor_license: NotRequired[Nullable[str]]
|
|
45
47
|
created_at: NotRequired[Nullable[str]]
|
|
46
48
|
|
|
@@ -98,6 +100,8 @@ class PermitDetail(BaseModel):
|
|
|
98
100
|
|
|
99
101
|
longitude: OptionalNullable[float] = UNSET
|
|
100
102
|
|
|
103
|
+
enrichment: OptionalNullable[PermitEnrichment] = UNSET
|
|
104
|
+
|
|
101
105
|
contractor_license: OptionalNullable[str] = UNSET
|
|
102
106
|
|
|
103
107
|
created_at: OptionalNullable[str] = UNSET
|
|
@@ -110,6 +114,7 @@ class PermitDetail(BaseModel):
|
|
|
110
114
|
"jurisdiction_name",
|
|
111
115
|
"latitude",
|
|
112
116
|
"longitude",
|
|
117
|
+
"enrichment",
|
|
113
118
|
"contractor_license",
|
|
114
119
|
"created_at",
|
|
115
120
|
]
|
|
@@ -131,6 +136,7 @@ class PermitDetail(BaseModel):
|
|
|
131
136
|
"jurisdiction_name",
|
|
132
137
|
"latitude",
|
|
133
138
|
"longitude",
|
|
139
|
+
"enrichment",
|
|
134
140
|
"date_expired",
|
|
135
141
|
"fee_amount",
|
|
136
142
|
"stories",
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from permitstack.types import (
|
|
5
|
+
BaseModel,
|
|
6
|
+
Nullable,
|
|
7
|
+
OptionalNullable,
|
|
8
|
+
UNSET,
|
|
9
|
+
UNSET_SENTINEL,
|
|
10
|
+
)
|
|
11
|
+
from pydantic import model_serializer
|
|
12
|
+
from typing import List
|
|
13
|
+
from typing_extensions import NotRequired, TypedDict
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class PermitEnrichmentTypedDict(TypedDict):
|
|
17
|
+
r"""Curated subset of the offline LLM enrichment (permits.enriched_data).
|
|
18
|
+
|
|
19
|
+
Present only on the ~1-2% of permits that have been enriched so far
|
|
20
|
+
(prioritized toward SOLAR/ROOFING/NEW_CONSTRUCTION). null otherwise.
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
scope: NotRequired[Nullable[str]]
|
|
24
|
+
work_summary: NotRequired[Nullable[str]]
|
|
25
|
+
solar_kw: NotRequired[Nullable[float]]
|
|
26
|
+
sqft: NotRequired[Nullable[float]]
|
|
27
|
+
units: NotRequired[Nullable[int]]
|
|
28
|
+
is_residential: NotRequired[Nullable[bool]]
|
|
29
|
+
is_commercial: NotRequired[Nullable[bool]]
|
|
30
|
+
materials: NotRequired[Nullable[List[str]]]
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class PermitEnrichment(BaseModel):
|
|
34
|
+
r"""Curated subset of the offline LLM enrichment (permits.enriched_data).
|
|
35
|
+
|
|
36
|
+
Present only on the ~1-2% of permits that have been enriched so far
|
|
37
|
+
(prioritized toward SOLAR/ROOFING/NEW_CONSTRUCTION). null otherwise.
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
scope: OptionalNullable[str] = UNSET
|
|
41
|
+
|
|
42
|
+
work_summary: OptionalNullable[str] = UNSET
|
|
43
|
+
|
|
44
|
+
solar_kw: OptionalNullable[float] = UNSET
|
|
45
|
+
|
|
46
|
+
sqft: OptionalNullable[float] = UNSET
|
|
47
|
+
|
|
48
|
+
units: OptionalNullable[int] = UNSET
|
|
49
|
+
|
|
50
|
+
is_residential: OptionalNullable[bool] = UNSET
|
|
51
|
+
|
|
52
|
+
is_commercial: OptionalNullable[bool] = UNSET
|
|
53
|
+
|
|
54
|
+
materials: OptionalNullable[List[str]] = UNSET
|
|
55
|
+
|
|
56
|
+
@model_serializer(mode="wrap")
|
|
57
|
+
def serialize_model(self, handler):
|
|
58
|
+
optional_fields = set(
|
|
59
|
+
[
|
|
60
|
+
"scope",
|
|
61
|
+
"work_summary",
|
|
62
|
+
"solar_kw",
|
|
63
|
+
"sqft",
|
|
64
|
+
"units",
|
|
65
|
+
"is_residential",
|
|
66
|
+
"is_commercial",
|
|
67
|
+
"materials",
|
|
68
|
+
]
|
|
69
|
+
)
|
|
70
|
+
nullable_fields = set(
|
|
71
|
+
[
|
|
72
|
+
"scope",
|
|
73
|
+
"work_summary",
|
|
74
|
+
"solar_kw",
|
|
75
|
+
"sqft",
|
|
76
|
+
"units",
|
|
77
|
+
"is_residential",
|
|
78
|
+
"is_commercial",
|
|
79
|
+
"materials",
|
|
80
|
+
]
|
|
81
|
+
)
|
|
82
|
+
serialized = handler(self)
|
|
83
|
+
m = {}
|
|
84
|
+
|
|
85
|
+
for n, f in type(self).model_fields.items():
|
|
86
|
+
k = f.alias or n
|
|
87
|
+
val = serialized.get(k, serialized.get(n))
|
|
88
|
+
is_nullable_and_explicitly_set = (
|
|
89
|
+
k in nullable_fields
|
|
90
|
+
and (self.__pydantic_fields_set__.intersection({n})) # pylint: disable=no-member
|
|
91
|
+
)
|
|
92
|
+
|
|
93
|
+
if val != UNSET_SENTINEL:
|
|
94
|
+
if (
|
|
95
|
+
val is not None
|
|
96
|
+
or k not in optional_fields
|
|
97
|
+
or is_nullable_and_explicitly_set
|
|
98
|
+
):
|
|
99
|
+
m[k] = val
|
|
100
|
+
|
|
101
|
+
return m
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
|
+
from .permitenrichment import PermitEnrichment, PermitEnrichmentTypedDict
|
|
4
5
|
from datetime import date
|
|
5
6
|
from permitstack.types import (
|
|
6
7
|
BaseModel,
|
|
@@ -34,6 +35,7 @@ class PermitSummaryTypedDict(TypedDict):
|
|
|
34
35
|
jurisdiction_name: NotRequired[Nullable[str]]
|
|
35
36
|
latitude: NotRequired[Nullable[float]]
|
|
36
37
|
longitude: NotRequired[Nullable[float]]
|
|
38
|
+
enrichment: NotRequired[Nullable[PermitEnrichmentTypedDict]]
|
|
37
39
|
|
|
38
40
|
|
|
39
41
|
class PermitSummary(BaseModel):
|
|
@@ -75,10 +77,18 @@ class PermitSummary(BaseModel):
|
|
|
75
77
|
|
|
76
78
|
longitude: OptionalNullable[float] = UNSET
|
|
77
79
|
|
|
80
|
+
enrichment: OptionalNullable[PermitEnrichment] = UNSET
|
|
81
|
+
|
|
78
82
|
@model_serializer(mode="wrap")
|
|
79
83
|
def serialize_model(self, handler):
|
|
80
84
|
optional_fields = set(
|
|
81
|
-
[
|
|
85
|
+
[
|
|
86
|
+
"contractor_name",
|
|
87
|
+
"jurisdiction_name",
|
|
88
|
+
"latitude",
|
|
89
|
+
"longitude",
|
|
90
|
+
"enrichment",
|
|
91
|
+
]
|
|
82
92
|
)
|
|
83
93
|
nullable_fields = set(
|
|
84
94
|
[
|
|
@@ -97,6 +107,7 @@ class PermitSummary(BaseModel):
|
|
|
97
107
|
"jurisdiction_name",
|
|
98
108
|
"latitude",
|
|
99
109
|
"longitude",
|
|
110
|
+
"enrichment",
|
|
100
111
|
]
|
|
101
112
|
)
|
|
102
113
|
serialized = handler(self)
|
|
@@ -26,7 +26,7 @@ class Permitstack(BaseSDK):
|
|
|
26
26
|
r"""PermitStack:
|
|
27
27
|
## PermitStack Building Permit API
|
|
28
28
|
|
|
29
|
-
Access 39M+ building permits across
|
|
29
|
+
Access 39M+ building permits across 171 active U.S. jurisdictions (plus 19 historical archives), updated daily from official open data portals.
|
|
30
30
|
|
|
31
31
|
### Getting started
|
|
32
32
|
1. Sign up at [permit-stack.com](https://permit-stack.com/#pricing) for a free API key (100 req/day)
|
|
@@ -46,6 +46,7 @@ def serialize_request_body(
|
|
|
46
46
|
|
|
47
47
|
if re.match(r"^(application|text)\/([^+]+\+)*json.*", media_type) is not None:
|
|
48
48
|
serialized_request_body.content = marshal_json(request_body, request_body_type)
|
|
49
|
+
|
|
49
50
|
elif re.match(r"^multipart\/.*", media_type) is not None:
|
|
50
51
|
(
|
|
51
52
|
serialized_request_body.media_type,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: permitstack
|
|
3
|
-
Version: 1.0
|
|
3
|
+
Version: 1.1.0
|
|
4
4
|
Summary: Official Python SDK for the PermitStack building permit data API.
|
|
5
5
|
Author: PermitStack
|
|
6
6
|
License: Apache-2.0
|
|
@@ -25,7 +25,7 @@ Developer-friendly & type-safe Python SDK specifically catered to leverage *perm
|
|
|
25
25
|
PermitStack:
|
|
26
26
|
## PermitStack Building Permit API
|
|
27
27
|
|
|
28
|
-
Access 39M+ building permits across
|
|
28
|
+
Access 39M+ building permits across 171 active U.S. jurisdictions (plus 19 historical archives), updated daily from official open data portals.
|
|
29
29
|
|
|
30
30
|
### Getting started
|
|
31
31
|
1. Sign up at [permit-stack.com](https://permit-stack.com/#pricing) for a free API key (100 req/day)
|
|
@@ -39,6 +39,7 @@ src/permitstack/models/get_permits_by_addressop.py
|
|
|
39
39
|
src/permitstack/models/get_property_historyop.py
|
|
40
40
|
src/permitstack/models/get_webhook_secretop.py
|
|
41
41
|
src/permitstack/models/permitdetail.py
|
|
42
|
+
src/permitstack/models/permitenrichment.py
|
|
42
43
|
src/permitstack/models/permitsearchresponse.py
|
|
43
44
|
src/permitstack/models/permitstatus.py
|
|
44
45
|
src/permitstack/models/permitsummary.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|