geoserver-acl-client 3.0.2__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.
Files changed (75) hide show
  1. geoserver_acl_client-3.0.2/PKG-INFO +208 -0
  2. geoserver_acl_client-3.0.2/README.md +190 -0
  3. geoserver_acl_client-3.0.2/geoserver_acl_client/__init__.py +103 -0
  4. geoserver_acl_client-3.0.2/geoserver_acl_client/api/__init__.py +7 -0
  5. geoserver_acl_client-3.0.2/geoserver_acl_client/api/authorization_api.py +1147 -0
  6. geoserver_acl_client-3.0.2/geoserver_acl_client/api/data_rules_api.py +4726 -0
  7. geoserver_acl_client-3.0.2/geoserver_acl_client/api/workspace_admin_rules_api.py +3860 -0
  8. geoserver_acl_client-3.0.2/geoserver_acl_client/api_client.py +834 -0
  9. geoserver_acl_client-3.0.2/geoserver_acl_client/api_response.py +21 -0
  10. geoserver_acl_client-3.0.2/geoserver_acl_client/configuration.py +671 -0
  11. geoserver_acl_client-3.0.2/geoserver_acl_client/exceptions.py +219 -0
  12. geoserver_acl_client-3.0.2/geoserver_acl_client/models/__init__.py +42 -0
  13. geoserver_acl_client-3.0.2/geoserver_acl_client/models/access_info.py +133 -0
  14. geoserver_acl_client-3.0.2/geoserver_acl_client/models/access_request.py +108 -0
  15. geoserver_acl_client-3.0.2/geoserver_acl_client/models/access_summary.py +96 -0
  16. geoserver_acl_client-3.0.2/geoserver_acl_client/models/access_summary_request.py +91 -0
  17. geoserver_acl_client-3.0.2/geoserver_acl_client/models/address_range_filter.py +112 -0
  18. geoserver_acl_client-3.0.2/geoserver_acl_client/models/admin_access_info.py +93 -0
  19. geoserver_acl_client-3.0.2/geoserver_acl_client/models/admin_access_request.py +100 -0
  20. geoserver_acl_client-3.0.2/geoserver_acl_client/models/admin_grant_type.py +38 -0
  21. geoserver_acl_client-3.0.2/geoserver_acl_client/models/admin_rule.py +159 -0
  22. geoserver_acl_client-3.0.2/geoserver_acl_client/models/admin_rule_filter.py +133 -0
  23. geoserver_acl_client-3.0.2/geoserver_acl_client/models/catalog_mode.py +39 -0
  24. geoserver_acl_client-3.0.2/geoserver_acl_client/models/geom.py +135 -0
  25. geoserver_acl_client-3.0.2/geoserver_acl_client/models/grant_type.py +39 -0
  26. geoserver_acl_client-3.0.2/geoserver_acl_client/models/insert_position.py +39 -0
  27. geoserver_acl_client-3.0.2/geoserver_acl_client/models/layer_attribute.py +113 -0
  28. geoserver_acl_client-3.0.2/geoserver_acl_client/models/layer_details.py +168 -0
  29. geoserver_acl_client-3.0.2/geoserver_acl_client/models/rule.py +198 -0
  30. geoserver_acl_client-3.0.2/geoserver_acl_client/models/rule_filter.py +170 -0
  31. geoserver_acl_client-3.0.2/geoserver_acl_client/models/rule_limits.py +109 -0
  32. geoserver_acl_client-3.0.2/geoserver_acl_client/models/set_filter.py +101 -0
  33. geoserver_acl_client-3.0.2/geoserver_acl_client/models/spatial_filter_type.py +38 -0
  34. geoserver_acl_client-3.0.2/geoserver_acl_client/models/text_filter.py +101 -0
  35. geoserver_acl_client-3.0.2/geoserver_acl_client/models/wkb.py +89 -0
  36. geoserver_acl_client-3.0.2/geoserver_acl_client/models/wkt.py +89 -0
  37. geoserver_acl_client-3.0.2/geoserver_acl_client/models/workspace_access_summary.py +106 -0
  38. geoserver_acl_client-3.0.2/geoserver_acl_client/py.typed +0 -0
  39. geoserver_acl_client-3.0.2/geoserver_acl_client/rest.py +335 -0
  40. geoserver_acl_client-3.0.2/geoserver_acl_client.egg-info/PKG-INFO +208 -0
  41. geoserver_acl_client-3.0.2/geoserver_acl_client.egg-info/SOURCES.txt +74 -0
  42. geoserver_acl_client-3.0.2/geoserver_acl_client.egg-info/dependency_links.txt +1 -0
  43. geoserver_acl_client-3.0.2/geoserver_acl_client.egg-info/requires.txt +4 -0
  44. geoserver_acl_client-3.0.2/geoserver_acl_client.egg-info/top_level.txt +1 -0
  45. geoserver_acl_client-3.0.2/pyproject.toml +95 -0
  46. geoserver_acl_client-3.0.2/setup.cfg +7 -0
  47. geoserver_acl_client-3.0.2/setup.py +49 -0
  48. geoserver_acl_client-3.0.2/test/test_access_info.py +69 -0
  49. geoserver_acl_client-3.0.2/test/test_access_request.py +59 -0
  50. geoserver_acl_client-3.0.2/test/test_access_summary.py +58 -0
  51. geoserver_acl_client-3.0.2/test/test_access_summary_request.py +55 -0
  52. geoserver_acl_client-3.0.2/test/test_address_range_filter.py +53 -0
  53. geoserver_acl_client-3.0.2/test/test_admin_access_info.py +55 -0
  54. geoserver_acl_client-3.0.2/test/test_admin_access_request.py +55 -0
  55. geoserver_acl_client-3.0.2/test/test_admin_grant_type.py +34 -0
  56. geoserver_acl_client-3.0.2/test/test_admin_rule.py +63 -0
  57. geoserver_acl_client-3.0.2/test/test_admin_rule_filter.py +64 -0
  58. geoserver_acl_client-3.0.2/test/test_authorization_api.py +60 -0
  59. geoserver_acl_client-3.0.2/test/test_catalog_mode.py +34 -0
  60. geoserver_acl_client-3.0.2/test/test_data_rules_api.py +145 -0
  61. geoserver_acl_client-3.0.2/test/test_geom.py +53 -0
  62. geoserver_acl_client-3.0.2/test/test_grant_type.py +34 -0
  63. geoserver_acl_client-3.0.2/test/test_insert_position.py +34 -0
  64. geoserver_acl_client-3.0.2/test/test_layer_attribute.py +55 -0
  65. geoserver_acl_client-3.0.2/test/test_layer_details.py +67 -0
  66. geoserver_acl_client-3.0.2/test/test_rule.py +71 -0
  67. geoserver_acl_client-3.0.2/test/test_rule_filter.py +75 -0
  68. geoserver_acl_client-3.0.2/test/test_rule_limits.py +54 -0
  69. geoserver_acl_client-3.0.2/test/test_set_filter.py +53 -0
  70. geoserver_acl_client-3.0.2/test/test_spatial_filter_type.py +34 -0
  71. geoserver_acl_client-3.0.2/test/test_text_filter.py +53 -0
  72. geoserver_acl_client-3.0.2/test/test_wkb.py +52 -0
  73. geoserver_acl_client-3.0.2/test/test_wkt.py +52 -0
  74. geoserver_acl_client-3.0.2/test/test_workspace_access_summary.py +55 -0
  75. geoserver_acl_client-3.0.2/test/test_workspace_admin_rules_api.py +116 -0
@@ -0,0 +1,208 @@
1
+ Metadata-Version: 2.4
2
+ Name: geoserver_acl_client
3
+ Version: 3.0.2
4
+ Summary: GeoServer Access Control List (ACL) API
5
+ Home-page:
6
+ Author: GeoServer ACL
7
+ Author-email: GeoServer ACL <geoserver-user@discourse.osgeo.org>
8
+ License: GPL-2.0
9
+ Project-URL: Repository, https://github.com/geoserver/geoserver-acl
10
+ Keywords: OpenAPI,OpenAPI-Generator,GeoServer Access Control List (ACL) API
11
+ Requires-Python: >=3.10
12
+ Description-Content-Type: text/markdown
13
+ Requires-Dist: urllib3<3.0.0,>=2.7.0
14
+ Requires-Dist: python-dateutil>=2.8.2
15
+ Requires-Dist: pydantic>=2.11
16
+ Requires-Dist: typing-extensions>=4.7.1
17
+ Dynamic: author
18
+
19
+ # geoserver-acl-client
20
+ This API provides comprehensive control over the GeoServer Access Control List (ACL) system.
21
+ It allows for the management of fine-grained access rules and provides endpoints to query authorization decisions.
22
+
23
+ The API is divided into three main areas:
24
+ 1. **Data Rules:** For managing access to specific GeoServer resources (layers, services, etc.).
25
+ 2. **Workspace Admin Rules:** For managing administrative privileges on a per-workspace basis.
26
+ 3. **Authorization:** For querying the ACL system to determine access rights for a given request.
27
+
28
+ Rules are evaluated in priority order (lower numbers = higher priority) to determine whether a request should be allowed, denied, or limited.
29
+ The API also provides authorization endpoints that evaluate these rules for specific access requests.
30
+
31
+
32
+ This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
33
+
34
+ - API version: 1.0.0
35
+ - Package version: 3.0.2
36
+ - Generator version: 7.25.0
37
+ - Build package: org.openapitools.codegen.languages.PythonClientCodegen
38
+ For more information, please visit [https://github.com/geoserver/geoserver-acl](https://github.com/geoserver/geoserver-acl)
39
+
40
+ ## Requirements.
41
+
42
+ Python 3.10+
43
+
44
+ ## Installation & Usage
45
+ ### pip install
46
+
47
+ If the python package is hosted on a repository, you can install directly using:
48
+
49
+ ```sh
50
+ pip install git+https://github.com/geoserver/geoserver-acl.git
51
+ ```
52
+ (you may need to run `pip` with root permission: `sudo pip install git+https://github.com/geoserver/geoserver-acl.git`)
53
+
54
+ Then import the package:
55
+ ```python
56
+ import geoserver_acl_client
57
+ ```
58
+
59
+ ### Setuptools
60
+
61
+ Install via [Setuptools](http://pypi.python.org/pypi/setuptools).
62
+
63
+ ```sh
64
+ python setup.py install --user
65
+ ```
66
+ (or `sudo python setup.py install` to install the package for all users)
67
+
68
+ Then import the package:
69
+ ```python
70
+ import geoserver_acl_client
71
+ ```
72
+
73
+ ### Tests
74
+
75
+ Execute `pytest` to run the tests.
76
+
77
+ ## Getting Started
78
+
79
+ Please follow the [installation procedure](#installation--usage) and then run the following:
80
+
81
+ ```python
82
+
83
+ import geoserver_acl_client
84
+ from geoserver_acl_client.rest import ApiException
85
+ from pprint import pprint
86
+
87
+ # Defining the host is optional and defaults to /api
88
+ # See configuration.py for a list of all supported configuration parameters.
89
+ configuration = geoserver_acl_client.Configuration(
90
+ host = "/api"
91
+ )
92
+
93
+ # The client must configure the authentication and authorization parameters
94
+ # in accordance with the API server security policy.
95
+ # Examples for each auth method are provided below, use the example that
96
+ # satisfies your auth use case.
97
+
98
+ # Configure HTTP basic authorization: basicAuth
99
+ configuration = geoserver_acl_client.Configuration(
100
+ username = os.environ["USERNAME"],
101
+ password = os.environ["PASSWORD"]
102
+ )
103
+
104
+
105
+ # Enter a context with an instance of the API client
106
+ with geoserver_acl_client.ApiClient(configuration) as api_client:
107
+ # Create an instance of the API class
108
+ api_instance = geoserver_acl_client.AuthorizationApi(api_client)
109
+ access_request = geoserver_acl_client.AccessRequest() # AccessRequest |
110
+
111
+ try:
112
+ # Evaluate resource access permissions
113
+ api_response = api_instance.get_access_info(access_request)
114
+ print("The response of AuthorizationApi->get_access_info:\n")
115
+ pprint(api_response)
116
+ except ApiException as e:
117
+ print("Exception when calling AuthorizationApi->get_access_info: %s\n" % e)
118
+
119
+ ```
120
+
121
+ ## Documentation for API Endpoints
122
+
123
+ All URIs are relative to */api*
124
+
125
+ Class | Method | HTTP request | Description
126
+ ------------ | ------------- | ------------- | -------------
127
+ *AuthorizationApi* | [**get_access_info**](docs/AuthorizationApi.md#get_access_info) | **POST** /authorization/resources | Evaluate resource access permissions
128
+ *AuthorizationApi* | [**get_admin_authorization**](docs/AuthorizationApi.md#get_admin_authorization) | **POST** /authorization/admin | Evaluate workspace administration access
129
+ *AuthorizationApi* | [**get_matching_rules**](docs/AuthorizationApi.md#get_matching_rules) | **POST** /authorization/resources/matchingrules | Get rules that match an access request
130
+ *AuthorizationApi* | [**get_user_access_summary**](docs/AuthorizationApi.md#get_user_access_summary) | **POST** /authorization/accesssummary | Get user access summary across workspaces
131
+ *DataRulesApi* | [**count_all_rules**](docs/DataRulesApi.md#count_all_rules) | **GET** /rules/query/count | Count all data rules
132
+ *DataRulesApi* | [**count_rules**](docs/DataRulesApi.md#count_rules) | **POST** /rules/query/count | Count rules matching filter criteria
133
+ *DataRulesApi* | [**create_rule**](docs/DataRulesApi.md#create_rule) | **POST** /rules | Create a new data rule
134
+ *DataRulesApi* | [**delete_all_rules**](docs/DataRulesApi.md#delete_all_rules) | **DELETE** /rules | Delete all data rules
135
+ *DataRulesApi* | [**delete_rule_by_id**](docs/DataRulesApi.md#delete_rule_by_id) | **DELETE** /rules/id/{id} | Delete a data rule
136
+ *DataRulesApi* | [**find_one_rule_by_priority**](docs/DataRulesApi.md#find_one_rule_by_priority) | **GET** /rules/query/one/priority/{priority} | Find rule by priority value
137
+ *DataRulesApi* | [**get_layer_details_by_rule_id**](docs/DataRulesApi.md#get_layer_details_by_rule_id) | **GET** /rules/id/{id}/layer-details |
138
+ *DataRulesApi* | [**get_rule_by_id**](docs/DataRulesApi.md#get_rule_by_id) | **GET** /rules/id/{id} | Get rule by ID
139
+ *DataRulesApi* | [**get_rules**](docs/DataRulesApi.md#get_rules) | **GET** /rules | List all data rules
140
+ *DataRulesApi* | [**query_rules**](docs/DataRulesApi.md#query_rules) | **POST** /rules/query | Query data rules with filters
141
+ *DataRulesApi* | [**rule_exists_by_id**](docs/DataRulesApi.md#rule_exists_by_id) | **GET** /rules/id/{id}/exists | Check if rule exists
142
+ *DataRulesApi* | [**set_rule_allowed_styles**](docs/DataRulesApi.md#set_rule_allowed_styles) | **PUT** /rules/id/{id}/styles |
143
+ *DataRulesApi* | [**set_rule_layer_details**](docs/DataRulesApi.md#set_rule_layer_details) | **PUT** /rules/id/{id}/layer-details |
144
+ *DataRulesApi* | [**set_rule_limits**](docs/DataRulesApi.md#set_rule_limits) | **PUT** /rules/id/{id}/limits |
145
+ *DataRulesApi* | [**shift_rules_by_priority**](docs/DataRulesApi.md#shift_rules_by_priority) | **POST** /rules/shift |
146
+ *DataRulesApi* | [**swap_rules**](docs/DataRulesApi.md#swap_rules) | **POST** /rules/id/{id}/swapwith/{id2} |
147
+ *DataRulesApi* | [**update_rule_by_id**](docs/DataRulesApi.md#update_rule_by_id) | **PATCH** /rules/id/{id} | Update an existing data rule
148
+ *WorkspaceAdminRulesApi* | [**admin_rule_exists_by_id**](docs/WorkspaceAdminRulesApi.md#admin_rule_exists_by_id) | **GET** /adminrules/id/{id}/exists |
149
+ *WorkspaceAdminRulesApi* | [**count_admin_rules**](docs/WorkspaceAdminRulesApi.md#count_admin_rules) | **POST** /adminrules/query/count |
150
+ *WorkspaceAdminRulesApi* | [**count_all_admin_rules**](docs/WorkspaceAdminRulesApi.md#count_all_admin_rules) | **GET** /adminrules/query/count |
151
+ *WorkspaceAdminRulesApi* | [**create_admin_rule**](docs/WorkspaceAdminRulesApi.md#create_admin_rule) | **POST** /adminrules |
152
+ *WorkspaceAdminRulesApi* | [**delete_admin_rule_by_id**](docs/WorkspaceAdminRulesApi.md#delete_admin_rule_by_id) | **DELETE** /adminrules/id/{id} |
153
+ *WorkspaceAdminRulesApi* | [**delete_all_admin_rules**](docs/WorkspaceAdminRulesApi.md#delete_all_admin_rules) | **DELETE** /adminrules |
154
+ *WorkspaceAdminRulesApi* | [**find_admin_rules**](docs/WorkspaceAdminRulesApi.md#find_admin_rules) | **POST** /adminrules/query |
155
+ *WorkspaceAdminRulesApi* | [**find_all_admin_rules**](docs/WorkspaceAdminRulesApi.md#find_all_admin_rules) | **GET** /adminrules |
156
+ *WorkspaceAdminRulesApi* | [**find_first_admin_rule**](docs/WorkspaceAdminRulesApi.md#find_first_admin_rule) | **POST** /adminrules/query/first |
157
+ *WorkspaceAdminRulesApi* | [**find_one_admin_rule_by_priority**](docs/WorkspaceAdminRulesApi.md#find_one_admin_rule_by_priority) | **GET** /adminrules/query/one/priority/{priority} |
158
+ *WorkspaceAdminRulesApi* | [**get_admin_rule_by_id**](docs/WorkspaceAdminRulesApi.md#get_admin_rule_by_id) | **GET** /adminrules/id/{id} |
159
+ *WorkspaceAdminRulesApi* | [**shift_admin_rules_by_priority**](docs/WorkspaceAdminRulesApi.md#shift_admin_rules_by_priority) | **POST** /adminrules/shift |
160
+ *WorkspaceAdminRulesApi* | [**swap_admin_rules**](docs/WorkspaceAdminRulesApi.md#swap_admin_rules) | **POST** /adminrules/id/{id}/swapwith/{id2} |
161
+ *WorkspaceAdminRulesApi* | [**update_admin_rule**](docs/WorkspaceAdminRulesApi.md#update_admin_rule) | **PATCH** /adminrules/id/{id} |
162
+
163
+
164
+ ## Documentation For Models
165
+
166
+ - [AccessInfo](docs/AccessInfo.md)
167
+ - [AccessRequest](docs/AccessRequest.md)
168
+ - [AccessSummary](docs/AccessSummary.md)
169
+ - [AccessSummaryRequest](docs/AccessSummaryRequest.md)
170
+ - [AddressRangeFilter](docs/AddressRangeFilter.md)
171
+ - [AdminAccessInfo](docs/AdminAccessInfo.md)
172
+ - [AdminAccessRequest](docs/AdminAccessRequest.md)
173
+ - [AdminGrantType](docs/AdminGrantType.md)
174
+ - [AdminRule](docs/AdminRule.md)
175
+ - [AdminRuleFilter](docs/AdminRuleFilter.md)
176
+ - [CatalogMode](docs/CatalogMode.md)
177
+ - [Geom](docs/Geom.md)
178
+ - [GrantType](docs/GrantType.md)
179
+ - [InsertPosition](docs/InsertPosition.md)
180
+ - [LayerAttribute](docs/LayerAttribute.md)
181
+ - [LayerDetails](docs/LayerDetails.md)
182
+ - [Rule](docs/Rule.md)
183
+ - [RuleFilter](docs/RuleFilter.md)
184
+ - [RuleLimits](docs/RuleLimits.md)
185
+ - [SetFilter](docs/SetFilter.md)
186
+ - [SpatialFilterType](docs/SpatialFilterType.md)
187
+ - [TextFilter](docs/TextFilter.md)
188
+ - [Wkb](docs/Wkb.md)
189
+ - [Wkt](docs/Wkt.md)
190
+ - [WorkspaceAccessSummary](docs/WorkspaceAccessSummary.md)
191
+
192
+
193
+ <a id="documentation-for-authorization"></a>
194
+ ## Documentation For Authorization
195
+
196
+
197
+ Authentication schemes defined for the API:
198
+ <a id="basicAuth"></a>
199
+ ### basicAuth
200
+
201
+ - **Type**: HTTP basic authentication
202
+
203
+
204
+ ## Author
205
+
206
+ geoserver-user@discourse.osgeo.org
207
+
208
+
@@ -0,0 +1,190 @@
1
+ # geoserver-acl-client
2
+ This API provides comprehensive control over the GeoServer Access Control List (ACL) system.
3
+ It allows for the management of fine-grained access rules and provides endpoints to query authorization decisions.
4
+
5
+ The API is divided into three main areas:
6
+ 1. **Data Rules:** For managing access to specific GeoServer resources (layers, services, etc.).
7
+ 2. **Workspace Admin Rules:** For managing administrative privileges on a per-workspace basis.
8
+ 3. **Authorization:** For querying the ACL system to determine access rights for a given request.
9
+
10
+ Rules are evaluated in priority order (lower numbers = higher priority) to determine whether a request should be allowed, denied, or limited.
11
+ The API also provides authorization endpoints that evaluate these rules for specific access requests.
12
+
13
+
14
+ This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
15
+
16
+ - API version: 1.0.0
17
+ - Package version: 3.0.2
18
+ - Generator version: 7.25.0
19
+ - Build package: org.openapitools.codegen.languages.PythonClientCodegen
20
+ For more information, please visit [https://github.com/geoserver/geoserver-acl](https://github.com/geoserver/geoserver-acl)
21
+
22
+ ## Requirements.
23
+
24
+ Python 3.10+
25
+
26
+ ## Installation & Usage
27
+ ### pip install
28
+
29
+ If the python package is hosted on a repository, you can install directly using:
30
+
31
+ ```sh
32
+ pip install git+https://github.com/geoserver/geoserver-acl.git
33
+ ```
34
+ (you may need to run `pip` with root permission: `sudo pip install git+https://github.com/geoserver/geoserver-acl.git`)
35
+
36
+ Then import the package:
37
+ ```python
38
+ import geoserver_acl_client
39
+ ```
40
+
41
+ ### Setuptools
42
+
43
+ Install via [Setuptools](http://pypi.python.org/pypi/setuptools).
44
+
45
+ ```sh
46
+ python setup.py install --user
47
+ ```
48
+ (or `sudo python setup.py install` to install the package for all users)
49
+
50
+ Then import the package:
51
+ ```python
52
+ import geoserver_acl_client
53
+ ```
54
+
55
+ ### Tests
56
+
57
+ Execute `pytest` to run the tests.
58
+
59
+ ## Getting Started
60
+
61
+ Please follow the [installation procedure](#installation--usage) and then run the following:
62
+
63
+ ```python
64
+
65
+ import geoserver_acl_client
66
+ from geoserver_acl_client.rest import ApiException
67
+ from pprint import pprint
68
+
69
+ # Defining the host is optional and defaults to /api
70
+ # See configuration.py for a list of all supported configuration parameters.
71
+ configuration = geoserver_acl_client.Configuration(
72
+ host = "/api"
73
+ )
74
+
75
+ # The client must configure the authentication and authorization parameters
76
+ # in accordance with the API server security policy.
77
+ # Examples for each auth method are provided below, use the example that
78
+ # satisfies your auth use case.
79
+
80
+ # Configure HTTP basic authorization: basicAuth
81
+ configuration = geoserver_acl_client.Configuration(
82
+ username = os.environ["USERNAME"],
83
+ password = os.environ["PASSWORD"]
84
+ )
85
+
86
+
87
+ # Enter a context with an instance of the API client
88
+ with geoserver_acl_client.ApiClient(configuration) as api_client:
89
+ # Create an instance of the API class
90
+ api_instance = geoserver_acl_client.AuthorizationApi(api_client)
91
+ access_request = geoserver_acl_client.AccessRequest() # AccessRequest |
92
+
93
+ try:
94
+ # Evaluate resource access permissions
95
+ api_response = api_instance.get_access_info(access_request)
96
+ print("The response of AuthorizationApi->get_access_info:\n")
97
+ pprint(api_response)
98
+ except ApiException as e:
99
+ print("Exception when calling AuthorizationApi->get_access_info: %s\n" % e)
100
+
101
+ ```
102
+
103
+ ## Documentation for API Endpoints
104
+
105
+ All URIs are relative to */api*
106
+
107
+ Class | Method | HTTP request | Description
108
+ ------------ | ------------- | ------------- | -------------
109
+ *AuthorizationApi* | [**get_access_info**](docs/AuthorizationApi.md#get_access_info) | **POST** /authorization/resources | Evaluate resource access permissions
110
+ *AuthorizationApi* | [**get_admin_authorization**](docs/AuthorizationApi.md#get_admin_authorization) | **POST** /authorization/admin | Evaluate workspace administration access
111
+ *AuthorizationApi* | [**get_matching_rules**](docs/AuthorizationApi.md#get_matching_rules) | **POST** /authorization/resources/matchingrules | Get rules that match an access request
112
+ *AuthorizationApi* | [**get_user_access_summary**](docs/AuthorizationApi.md#get_user_access_summary) | **POST** /authorization/accesssummary | Get user access summary across workspaces
113
+ *DataRulesApi* | [**count_all_rules**](docs/DataRulesApi.md#count_all_rules) | **GET** /rules/query/count | Count all data rules
114
+ *DataRulesApi* | [**count_rules**](docs/DataRulesApi.md#count_rules) | **POST** /rules/query/count | Count rules matching filter criteria
115
+ *DataRulesApi* | [**create_rule**](docs/DataRulesApi.md#create_rule) | **POST** /rules | Create a new data rule
116
+ *DataRulesApi* | [**delete_all_rules**](docs/DataRulesApi.md#delete_all_rules) | **DELETE** /rules | Delete all data rules
117
+ *DataRulesApi* | [**delete_rule_by_id**](docs/DataRulesApi.md#delete_rule_by_id) | **DELETE** /rules/id/{id} | Delete a data rule
118
+ *DataRulesApi* | [**find_one_rule_by_priority**](docs/DataRulesApi.md#find_one_rule_by_priority) | **GET** /rules/query/one/priority/{priority} | Find rule by priority value
119
+ *DataRulesApi* | [**get_layer_details_by_rule_id**](docs/DataRulesApi.md#get_layer_details_by_rule_id) | **GET** /rules/id/{id}/layer-details |
120
+ *DataRulesApi* | [**get_rule_by_id**](docs/DataRulesApi.md#get_rule_by_id) | **GET** /rules/id/{id} | Get rule by ID
121
+ *DataRulesApi* | [**get_rules**](docs/DataRulesApi.md#get_rules) | **GET** /rules | List all data rules
122
+ *DataRulesApi* | [**query_rules**](docs/DataRulesApi.md#query_rules) | **POST** /rules/query | Query data rules with filters
123
+ *DataRulesApi* | [**rule_exists_by_id**](docs/DataRulesApi.md#rule_exists_by_id) | **GET** /rules/id/{id}/exists | Check if rule exists
124
+ *DataRulesApi* | [**set_rule_allowed_styles**](docs/DataRulesApi.md#set_rule_allowed_styles) | **PUT** /rules/id/{id}/styles |
125
+ *DataRulesApi* | [**set_rule_layer_details**](docs/DataRulesApi.md#set_rule_layer_details) | **PUT** /rules/id/{id}/layer-details |
126
+ *DataRulesApi* | [**set_rule_limits**](docs/DataRulesApi.md#set_rule_limits) | **PUT** /rules/id/{id}/limits |
127
+ *DataRulesApi* | [**shift_rules_by_priority**](docs/DataRulesApi.md#shift_rules_by_priority) | **POST** /rules/shift |
128
+ *DataRulesApi* | [**swap_rules**](docs/DataRulesApi.md#swap_rules) | **POST** /rules/id/{id}/swapwith/{id2} |
129
+ *DataRulesApi* | [**update_rule_by_id**](docs/DataRulesApi.md#update_rule_by_id) | **PATCH** /rules/id/{id} | Update an existing data rule
130
+ *WorkspaceAdminRulesApi* | [**admin_rule_exists_by_id**](docs/WorkspaceAdminRulesApi.md#admin_rule_exists_by_id) | **GET** /adminrules/id/{id}/exists |
131
+ *WorkspaceAdminRulesApi* | [**count_admin_rules**](docs/WorkspaceAdminRulesApi.md#count_admin_rules) | **POST** /adminrules/query/count |
132
+ *WorkspaceAdminRulesApi* | [**count_all_admin_rules**](docs/WorkspaceAdminRulesApi.md#count_all_admin_rules) | **GET** /adminrules/query/count |
133
+ *WorkspaceAdminRulesApi* | [**create_admin_rule**](docs/WorkspaceAdminRulesApi.md#create_admin_rule) | **POST** /adminrules |
134
+ *WorkspaceAdminRulesApi* | [**delete_admin_rule_by_id**](docs/WorkspaceAdminRulesApi.md#delete_admin_rule_by_id) | **DELETE** /adminrules/id/{id} |
135
+ *WorkspaceAdminRulesApi* | [**delete_all_admin_rules**](docs/WorkspaceAdminRulesApi.md#delete_all_admin_rules) | **DELETE** /adminrules |
136
+ *WorkspaceAdminRulesApi* | [**find_admin_rules**](docs/WorkspaceAdminRulesApi.md#find_admin_rules) | **POST** /adminrules/query |
137
+ *WorkspaceAdminRulesApi* | [**find_all_admin_rules**](docs/WorkspaceAdminRulesApi.md#find_all_admin_rules) | **GET** /adminrules |
138
+ *WorkspaceAdminRulesApi* | [**find_first_admin_rule**](docs/WorkspaceAdminRulesApi.md#find_first_admin_rule) | **POST** /adminrules/query/first |
139
+ *WorkspaceAdminRulesApi* | [**find_one_admin_rule_by_priority**](docs/WorkspaceAdminRulesApi.md#find_one_admin_rule_by_priority) | **GET** /adminrules/query/one/priority/{priority} |
140
+ *WorkspaceAdminRulesApi* | [**get_admin_rule_by_id**](docs/WorkspaceAdminRulesApi.md#get_admin_rule_by_id) | **GET** /adminrules/id/{id} |
141
+ *WorkspaceAdminRulesApi* | [**shift_admin_rules_by_priority**](docs/WorkspaceAdminRulesApi.md#shift_admin_rules_by_priority) | **POST** /adminrules/shift |
142
+ *WorkspaceAdminRulesApi* | [**swap_admin_rules**](docs/WorkspaceAdminRulesApi.md#swap_admin_rules) | **POST** /adminrules/id/{id}/swapwith/{id2} |
143
+ *WorkspaceAdminRulesApi* | [**update_admin_rule**](docs/WorkspaceAdminRulesApi.md#update_admin_rule) | **PATCH** /adminrules/id/{id} |
144
+
145
+
146
+ ## Documentation For Models
147
+
148
+ - [AccessInfo](docs/AccessInfo.md)
149
+ - [AccessRequest](docs/AccessRequest.md)
150
+ - [AccessSummary](docs/AccessSummary.md)
151
+ - [AccessSummaryRequest](docs/AccessSummaryRequest.md)
152
+ - [AddressRangeFilter](docs/AddressRangeFilter.md)
153
+ - [AdminAccessInfo](docs/AdminAccessInfo.md)
154
+ - [AdminAccessRequest](docs/AdminAccessRequest.md)
155
+ - [AdminGrantType](docs/AdminGrantType.md)
156
+ - [AdminRule](docs/AdminRule.md)
157
+ - [AdminRuleFilter](docs/AdminRuleFilter.md)
158
+ - [CatalogMode](docs/CatalogMode.md)
159
+ - [Geom](docs/Geom.md)
160
+ - [GrantType](docs/GrantType.md)
161
+ - [InsertPosition](docs/InsertPosition.md)
162
+ - [LayerAttribute](docs/LayerAttribute.md)
163
+ - [LayerDetails](docs/LayerDetails.md)
164
+ - [Rule](docs/Rule.md)
165
+ - [RuleFilter](docs/RuleFilter.md)
166
+ - [RuleLimits](docs/RuleLimits.md)
167
+ - [SetFilter](docs/SetFilter.md)
168
+ - [SpatialFilterType](docs/SpatialFilterType.md)
169
+ - [TextFilter](docs/TextFilter.md)
170
+ - [Wkb](docs/Wkb.md)
171
+ - [Wkt](docs/Wkt.md)
172
+ - [WorkspaceAccessSummary](docs/WorkspaceAccessSummary.md)
173
+
174
+
175
+ <a id="documentation-for-authorization"></a>
176
+ ## Documentation For Authorization
177
+
178
+
179
+ Authentication schemes defined for the API:
180
+ <a id="basicAuth"></a>
181
+ ### basicAuth
182
+
183
+ - **Type**: HTTP basic authentication
184
+
185
+
186
+ ## Author
187
+
188
+ geoserver-user@discourse.osgeo.org
189
+
190
+
@@ -0,0 +1,103 @@
1
+ # coding: utf-8
2
+
3
+ # flake8: noqa
4
+
5
+ """
6
+ GeoServer Access Control List (ACL) API
7
+
8
+ This API provides comprehensive control over the GeoServer Access Control List (ACL) system. It allows for the management of fine-grained access rules and provides endpoints to query authorization decisions. The API is divided into three main areas: 1. **Data Rules:** For managing access to specific GeoServer resources (layers, services, etc.). 2. **Workspace Admin Rules:** For managing administrative privileges on a per-workspace basis. 3. **Authorization:** For querying the ACL system to determine access rights for a given request. Rules are evaluated in priority order (lower numbers = higher priority) to determine whether a request should be allowed, denied, or limited. The API also provides authorization endpoints that evaluate these rules for specific access requests.
9
+
10
+ The version of the OpenAPI document: 1.0.0
11
+ Contact: geoserver-user@discourse.osgeo.org
12
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
13
+
14
+ Do not edit the class manually.
15
+ """ # noqa: E501
16
+
17
+
18
+ __version__ = "3.0.2"
19
+
20
+ # Define package exports
21
+ __all__ = [
22
+ "AuthorizationApi",
23
+ "DataRulesApi",
24
+ "WorkspaceAdminRulesApi",
25
+ "ApiResponse",
26
+ "ApiClient",
27
+ "Configuration",
28
+ "OpenApiException",
29
+ "ApiTypeError",
30
+ "ApiValueError",
31
+ "ApiKeyError",
32
+ "ApiAttributeError",
33
+ "ApiException",
34
+ "AccessInfo",
35
+ "AccessRequest",
36
+ "AccessSummary",
37
+ "AccessSummaryRequest",
38
+ "AddressRangeFilter",
39
+ "AdminAccessInfo",
40
+ "AdminAccessRequest",
41
+ "AdminGrantType",
42
+ "AdminRule",
43
+ "AdminRuleFilter",
44
+ "CatalogMode",
45
+ "Geom",
46
+ "GrantType",
47
+ "InsertPosition",
48
+ "LayerAttribute",
49
+ "LayerDetails",
50
+ "Rule",
51
+ "RuleFilter",
52
+ "RuleLimits",
53
+ "SetFilter",
54
+ "SpatialFilterType",
55
+ "TextFilter",
56
+ "Wkb",
57
+ "Wkt",
58
+ "WorkspaceAccessSummary",
59
+ ]
60
+
61
+ # import apis into sdk package
62
+ from geoserver_acl_client.api.authorization_api import AuthorizationApi as AuthorizationApi
63
+ from geoserver_acl_client.api.data_rules_api import DataRulesApi as DataRulesApi
64
+ from geoserver_acl_client.api.workspace_admin_rules_api import WorkspaceAdminRulesApi as WorkspaceAdminRulesApi
65
+
66
+ # import ApiClient
67
+ from geoserver_acl_client.api_response import ApiResponse as ApiResponse
68
+ from geoserver_acl_client.api_client import ApiClient as ApiClient
69
+ from geoserver_acl_client.configuration import Configuration as Configuration
70
+ from geoserver_acl_client.exceptions import OpenApiException as OpenApiException
71
+ from geoserver_acl_client.exceptions import ApiTypeError as ApiTypeError
72
+ from geoserver_acl_client.exceptions import ApiValueError as ApiValueError
73
+ from geoserver_acl_client.exceptions import ApiKeyError as ApiKeyError
74
+ from geoserver_acl_client.exceptions import ApiAttributeError as ApiAttributeError
75
+ from geoserver_acl_client.exceptions import ApiException as ApiException
76
+
77
+ # import models into sdk package
78
+ from geoserver_acl_client.models.access_info import AccessInfo as AccessInfo
79
+ from geoserver_acl_client.models.access_request import AccessRequest as AccessRequest
80
+ from geoserver_acl_client.models.access_summary import AccessSummary as AccessSummary
81
+ from geoserver_acl_client.models.access_summary_request import AccessSummaryRequest as AccessSummaryRequest
82
+ from geoserver_acl_client.models.address_range_filter import AddressRangeFilter as AddressRangeFilter
83
+ from geoserver_acl_client.models.admin_access_info import AdminAccessInfo as AdminAccessInfo
84
+ from geoserver_acl_client.models.admin_access_request import AdminAccessRequest as AdminAccessRequest
85
+ from geoserver_acl_client.models.admin_grant_type import AdminGrantType as AdminGrantType
86
+ from geoserver_acl_client.models.admin_rule import AdminRule as AdminRule
87
+ from geoserver_acl_client.models.admin_rule_filter import AdminRuleFilter as AdminRuleFilter
88
+ from geoserver_acl_client.models.catalog_mode import CatalogMode as CatalogMode
89
+ from geoserver_acl_client.models.geom import Geom as Geom
90
+ from geoserver_acl_client.models.grant_type import GrantType as GrantType
91
+ from geoserver_acl_client.models.insert_position import InsertPosition as InsertPosition
92
+ from geoserver_acl_client.models.layer_attribute import LayerAttribute as LayerAttribute
93
+ from geoserver_acl_client.models.layer_details import LayerDetails as LayerDetails
94
+ from geoserver_acl_client.models.rule import Rule as Rule
95
+ from geoserver_acl_client.models.rule_filter import RuleFilter as RuleFilter
96
+ from geoserver_acl_client.models.rule_limits import RuleLimits as RuleLimits
97
+ from geoserver_acl_client.models.set_filter import SetFilter as SetFilter
98
+ from geoserver_acl_client.models.spatial_filter_type import SpatialFilterType as SpatialFilterType
99
+ from geoserver_acl_client.models.text_filter import TextFilter as TextFilter
100
+ from geoserver_acl_client.models.wkb import Wkb as Wkb
101
+ from geoserver_acl_client.models.wkt import Wkt as Wkt
102
+ from geoserver_acl_client.models.workspace_access_summary import WorkspaceAccessSummary as WorkspaceAccessSummary
103
+
@@ -0,0 +1,7 @@
1
+ # flake8: noqa
2
+
3
+ # import apis into api package
4
+ from geoserver_acl_client.api.authorization_api import AuthorizationApi
5
+ from geoserver_acl_client.api.data_rules_api import DataRulesApi
6
+ from geoserver_acl_client.api.workspace_admin_rules_api import WorkspaceAdminRulesApi
7
+