Metadata-Version: 2.4
Name: geoserver_acl_client
Version: 3.0.2
Summary: GeoServer Access Control List (ACL) API
Home-page: 
Author: GeoServer ACL
Author-email: GeoServer ACL <geoserver-user@discourse.osgeo.org>
License: GPL-2.0
Project-URL: Repository, https://github.com/geoserver/geoserver-acl
Keywords: OpenAPI,OpenAPI-Generator,GeoServer Access Control List (ACL) API
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: urllib3<3.0.0,>=2.7.0
Requires-Dist: python-dateutil>=2.8.2
Requires-Dist: pydantic>=2.11
Requires-Dist: typing-extensions>=4.7.1
Dynamic: author

# geoserver-acl-client
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.


This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:

- API version: 1.0.0
- Package version: 3.0.2
- Generator version: 7.25.0
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
For more information, please visit [https://github.com/geoserver/geoserver-acl](https://github.com/geoserver/geoserver-acl)

## Requirements.

Python 3.10+

## Installation & Usage
### pip install

If the python package is hosted on a repository, you can install directly using:

```sh
pip install git+https://github.com/geoserver/geoserver-acl.git
```
(you may need to run `pip` with root permission: `sudo pip install git+https://github.com/geoserver/geoserver-acl.git`)

Then import the package:
```python
import geoserver_acl_client
```

### Setuptools

Install via [Setuptools](http://pypi.python.org/pypi/setuptools).

```sh
python setup.py install --user
```
(or `sudo python setup.py install` to install the package for all users)

Then import the package:
```python
import geoserver_acl_client
```

### Tests

Execute `pytest` to run the tests.

## Getting Started

Please follow the [installation procedure](#installation--usage) and then run the following:

```python

import geoserver_acl_client
from geoserver_acl_client.rest import ApiException
from pprint import pprint

# Defining the host is optional and defaults to /api
# See configuration.py for a list of all supported configuration parameters.
configuration = geoserver_acl_client.Configuration(
    host = "/api"
)

# The client must configure the authentication and authorization parameters
# in accordance with the API server security policy.
# Examples for each auth method are provided below, use the example that
# satisfies your auth use case.

# Configure HTTP basic authorization: basicAuth
configuration = geoserver_acl_client.Configuration(
    username = os.environ["USERNAME"],
    password = os.environ["PASSWORD"]
)


# Enter a context with an instance of the API client
with geoserver_acl_client.ApiClient(configuration) as api_client:
    # Create an instance of the API class
    api_instance = geoserver_acl_client.AuthorizationApi(api_client)
    access_request = geoserver_acl_client.AccessRequest() # AccessRequest | 

    try:
        # Evaluate resource access permissions
        api_response = api_instance.get_access_info(access_request)
        print("The response of AuthorizationApi->get_access_info:\n")
        pprint(api_response)
    except ApiException as e:
        print("Exception when calling AuthorizationApi->get_access_info: %s\n" % e)

```

## Documentation for API Endpoints

All URIs are relative to */api*

Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*AuthorizationApi* | [**get_access_info**](docs/AuthorizationApi.md#get_access_info) | **POST** /authorization/resources | Evaluate resource access permissions
*AuthorizationApi* | [**get_admin_authorization**](docs/AuthorizationApi.md#get_admin_authorization) | **POST** /authorization/admin | Evaluate workspace administration access
*AuthorizationApi* | [**get_matching_rules**](docs/AuthorizationApi.md#get_matching_rules) | **POST** /authorization/resources/matchingrules | Get rules that match an access request
*AuthorizationApi* | [**get_user_access_summary**](docs/AuthorizationApi.md#get_user_access_summary) | **POST** /authorization/accesssummary | Get user access summary across workspaces
*DataRulesApi* | [**count_all_rules**](docs/DataRulesApi.md#count_all_rules) | **GET** /rules/query/count | Count all data rules
*DataRulesApi* | [**count_rules**](docs/DataRulesApi.md#count_rules) | **POST** /rules/query/count | Count rules matching filter criteria
*DataRulesApi* | [**create_rule**](docs/DataRulesApi.md#create_rule) | **POST** /rules | Create a new data rule
*DataRulesApi* | [**delete_all_rules**](docs/DataRulesApi.md#delete_all_rules) | **DELETE** /rules | Delete all data rules
*DataRulesApi* | [**delete_rule_by_id**](docs/DataRulesApi.md#delete_rule_by_id) | **DELETE** /rules/id/{id} | Delete a data rule
*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
*DataRulesApi* | [**get_layer_details_by_rule_id**](docs/DataRulesApi.md#get_layer_details_by_rule_id) | **GET** /rules/id/{id}/layer-details | 
*DataRulesApi* | [**get_rule_by_id**](docs/DataRulesApi.md#get_rule_by_id) | **GET** /rules/id/{id} | Get rule by ID
*DataRulesApi* | [**get_rules**](docs/DataRulesApi.md#get_rules) | **GET** /rules | List all data rules
*DataRulesApi* | [**query_rules**](docs/DataRulesApi.md#query_rules) | **POST** /rules/query | Query data rules with filters
*DataRulesApi* | [**rule_exists_by_id**](docs/DataRulesApi.md#rule_exists_by_id) | **GET** /rules/id/{id}/exists | Check if rule exists
*DataRulesApi* | [**set_rule_allowed_styles**](docs/DataRulesApi.md#set_rule_allowed_styles) | **PUT** /rules/id/{id}/styles | 
*DataRulesApi* | [**set_rule_layer_details**](docs/DataRulesApi.md#set_rule_layer_details) | **PUT** /rules/id/{id}/layer-details | 
*DataRulesApi* | [**set_rule_limits**](docs/DataRulesApi.md#set_rule_limits) | **PUT** /rules/id/{id}/limits | 
*DataRulesApi* | [**shift_rules_by_priority**](docs/DataRulesApi.md#shift_rules_by_priority) | **POST** /rules/shift | 
*DataRulesApi* | [**swap_rules**](docs/DataRulesApi.md#swap_rules) | **POST** /rules/id/{id}/swapwith/{id2} | 
*DataRulesApi* | [**update_rule_by_id**](docs/DataRulesApi.md#update_rule_by_id) | **PATCH** /rules/id/{id} | Update an existing data rule
*WorkspaceAdminRulesApi* | [**admin_rule_exists_by_id**](docs/WorkspaceAdminRulesApi.md#admin_rule_exists_by_id) | **GET** /adminrules/id/{id}/exists | 
*WorkspaceAdminRulesApi* | [**count_admin_rules**](docs/WorkspaceAdminRulesApi.md#count_admin_rules) | **POST** /adminrules/query/count | 
*WorkspaceAdminRulesApi* | [**count_all_admin_rules**](docs/WorkspaceAdminRulesApi.md#count_all_admin_rules) | **GET** /adminrules/query/count | 
*WorkspaceAdminRulesApi* | [**create_admin_rule**](docs/WorkspaceAdminRulesApi.md#create_admin_rule) | **POST** /adminrules | 
*WorkspaceAdminRulesApi* | [**delete_admin_rule_by_id**](docs/WorkspaceAdminRulesApi.md#delete_admin_rule_by_id) | **DELETE** /adminrules/id/{id} | 
*WorkspaceAdminRulesApi* | [**delete_all_admin_rules**](docs/WorkspaceAdminRulesApi.md#delete_all_admin_rules) | **DELETE** /adminrules | 
*WorkspaceAdminRulesApi* | [**find_admin_rules**](docs/WorkspaceAdminRulesApi.md#find_admin_rules) | **POST** /adminrules/query | 
*WorkspaceAdminRulesApi* | [**find_all_admin_rules**](docs/WorkspaceAdminRulesApi.md#find_all_admin_rules) | **GET** /adminrules | 
*WorkspaceAdminRulesApi* | [**find_first_admin_rule**](docs/WorkspaceAdminRulesApi.md#find_first_admin_rule) | **POST** /adminrules/query/first | 
*WorkspaceAdminRulesApi* | [**find_one_admin_rule_by_priority**](docs/WorkspaceAdminRulesApi.md#find_one_admin_rule_by_priority) | **GET** /adminrules/query/one/priority/{priority} | 
*WorkspaceAdminRulesApi* | [**get_admin_rule_by_id**](docs/WorkspaceAdminRulesApi.md#get_admin_rule_by_id) | **GET** /adminrules/id/{id} | 
*WorkspaceAdminRulesApi* | [**shift_admin_rules_by_priority**](docs/WorkspaceAdminRulesApi.md#shift_admin_rules_by_priority) | **POST** /adminrules/shift | 
*WorkspaceAdminRulesApi* | [**swap_admin_rules**](docs/WorkspaceAdminRulesApi.md#swap_admin_rules) | **POST** /adminrules/id/{id}/swapwith/{id2} | 
*WorkspaceAdminRulesApi* | [**update_admin_rule**](docs/WorkspaceAdminRulesApi.md#update_admin_rule) | **PATCH** /adminrules/id/{id} | 


## Documentation For Models

 - [AccessInfo](docs/AccessInfo.md)
 - [AccessRequest](docs/AccessRequest.md)
 - [AccessSummary](docs/AccessSummary.md)
 - [AccessSummaryRequest](docs/AccessSummaryRequest.md)
 - [AddressRangeFilter](docs/AddressRangeFilter.md)
 - [AdminAccessInfo](docs/AdminAccessInfo.md)
 - [AdminAccessRequest](docs/AdminAccessRequest.md)
 - [AdminGrantType](docs/AdminGrantType.md)
 - [AdminRule](docs/AdminRule.md)
 - [AdminRuleFilter](docs/AdminRuleFilter.md)
 - [CatalogMode](docs/CatalogMode.md)
 - [Geom](docs/Geom.md)
 - [GrantType](docs/GrantType.md)
 - [InsertPosition](docs/InsertPosition.md)
 - [LayerAttribute](docs/LayerAttribute.md)
 - [LayerDetails](docs/LayerDetails.md)
 - [Rule](docs/Rule.md)
 - [RuleFilter](docs/RuleFilter.md)
 - [RuleLimits](docs/RuleLimits.md)
 - [SetFilter](docs/SetFilter.md)
 - [SpatialFilterType](docs/SpatialFilterType.md)
 - [TextFilter](docs/TextFilter.md)
 - [Wkb](docs/Wkb.md)
 - [Wkt](docs/Wkt.md)
 - [WorkspaceAccessSummary](docs/WorkspaceAccessSummary.md)


<a id="documentation-for-authorization"></a>
## Documentation For Authorization


Authentication schemes defined for the API:
<a id="basicAuth"></a>
### basicAuth

- **Type**: HTTP basic authentication


## Author

geoserver-user@discourse.osgeo.org


