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
25 changes: 25 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,30 @@
# Change Log (v2.8.1+)

## v4.1.2 [2025-03-06]

__What's New:__

* None

__Enhancements:__

* None

__Bug Fixes:__

* Added missing `fields` param to `access_broker.resources.types.[create|update]`
* Fixed `my_resources.list` bug, where `params` is `None` instead of expected `dict`
* Fixed issue with `access_broker.resources.permissions.create` uploading files when none are specified.
* Correct the `members` param example for `access_broker.profiles.policies.[create|update]`

__Dependencies:__

* None

__Other:__

* Type hint cleanup and preferential sorting for `access_broker`

## v4.1.1 [2025-03-05]

__What's New:__
Expand Down
2 changes: 1 addition & 1 deletion src/britive/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = '4.1.1'
__version__ = '4.1.2'
4 changes: 2 additions & 2 deletions src/britive/access_broker/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@

class AccessBroker:
def __init__(self, britive) -> None:
self.brokers = Brokers(britive)
self.pools = Pools(britive)
self.profiles = Profiles(britive)
self.resources = Resources(britive)
self.response_templates = ResponseTemplates(britive)
self.brokers = Brokers(britive)
self.pools = Pools(britive)
74 changes: 37 additions & 37 deletions src/britive/access_broker/pools.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,16 @@ def create(self, name: str, description: str = '', keep_alive: int = 60, disconn

return self.britive.post(self.base_url, json=params)

def get(self, pool_id: str) -> dict:
"""
Retrieve broker pool by ID.

:param pool_id: Broker pool ID.
:return: Details of the broker pool.
"""

return self.britive.get(f'{self.base_url}/{pool_id}')

def list(self, name_filter: str = '') -> list:
"""
List broker pools with ability to filter by name.
Expand All @@ -37,15 +47,28 @@ def list(self, name_filter: str = '') -> list:

return self.britive.get(self.base_url, params=params)['data']

def get(self, pool_id: str) -> dict:
def list_brokers(self, pool_id: str) -> list:
"""
Retrieve broker pool by ID.
Retrieve brokers for the broker pool.

:param pool_id: Broker pool ID.
:return: Details of the broker pool.
:return: List of brokers for the broker pool.
"""

return self.britive.get(f'{self.base_url}/{pool_id}')
return self.britive.get(f'{self.base_url}/{pool_id}/brokers')

def list_resources(self, pool_id: str, search_text: str = '') -> list:
"""
Retrieve resources for the broker pool.

:param pool_id: Broker pool ID.
:param search_text: Filter resources by search text.
:return: List of resources for the broker pool.
"""

params = {'filter': f'brokerPool eq {pool_id}', 'searchText': search_text}

return self.britive.get(f'{self.britive.base_url}/resource-manager/resources', params=params)

def update(
self, pool_id: str, name: str = None, description: str = None, keep_alive: int = None, disconnect: int = None
Expand Down Expand Up @@ -84,29 +107,6 @@ def delete(self, pool_id: str) -> None:

return self.britive.delete(f'{self.base_url}/{pool_id}')

def list_brokers(self, pool_id: str) -> list:
"""
Retrieve brokers for the broker pool.

:param pool_id: Broker pool ID.
:return: List of brokers for the broker pool.
"""

return self.britive.get(f'{self.base_url}/{pool_id}/brokers')

def list_resources(self, pool_id: str, search_text: str = '') -> list:
"""
Retrieve resources for the broker pool.

:param pool_id: Broker pool ID.
:param search_text: Filter resources by search text.
:return: List of resources for the broker pool.
"""

params = {'filter': f'brokerPool eq {pool_id}', 'searchText': search_text}

return self.britive.get(f'{self.britive.base_url}/resource-manager/resources', params=params)

def create_token(self, pool_id, name: str, description: str = '') -> dict:
"""
Create new token for the broker pool - newly created tokens have an `INACTIVE` status.
Expand Down Expand Up @@ -162,16 +162,6 @@ def delete_token(self, pool_id: str, name: str) -> None:

return self.britive.delete(f'{self.base_url}/{pool_id}/tokens/{name}')

def list_labels(self, pool_id: str) -> list:
"""
Retrieve resource labels for the broker pool.

:param pool_id: Broker pool ID.
:return: List of resource labels for the broker pool.
"""

return self.britive.get(f'{self.base_url}/{pool_id}/labels')

def add_label(self, pool_id: str, key: str, values: list) -> dict:
"""
Add a resource label to the broker pool.
Expand All @@ -186,6 +176,16 @@ def add_label(self, pool_id: str, key: str, values: list) -> dict:

return self.britive.post(f'{self.base_url}/{pool_id}/labels/', json=params)

def list_labels(self, pool_id: str) -> list:
"""
Retrieve resource labels for the broker pool.

:param pool_id: Broker pool ID.
:return: List of resource labels for the broker pool.
"""

return self.britive.get(f'{self.base_url}/{pool_id}/labels')

def update_label(self, pool_id: str, key: str, values: list) -> dict:
"""
Add a resource label to the broker pool.
Expand Down
24 changes: 13 additions & 11 deletions src/britive/access_broker/profiles/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ class Profiles:
def __init__(self, britive) -> None:
self.britive = britive
self.base_url = f'{self.britive.base_url}/resource-manager/profiles'
self.policies = Policies(britive)
self.permissions = Permissions(britive)
self.policies = Policies(britive)

def create(self, name: str, description: str = '', expiration_duration: int = 900000) -> dict:
"""
Expand All @@ -23,15 +23,6 @@ def create(self, name: str, description: str = '', expiration_duration: int = 90

return self.britive.post(f'{self.base_url}', json=params)

def list(self) -> list:
"""
Retrieve all profiles.

:return: List of profiles.
"""

return self.britive.get(self.base_url, params={})

def get(self, profile_id: str) -> dict:
"""
Retrieve a profile by ID.
Expand All @@ -42,7 +33,18 @@ def get(self, profile_id: str) -> dict:

return self.britive.get(f'{self.base_url}/{profile_id}')

def update(self, profile_id: str, name: str = '', description: str = '', expiration_duration: int = 0) -> dict:
def list(self) -> list:
"""
Retrieve all profiles.

:return: List of profiles.
"""

return self.britive.get(self.base_url, params={})

def update(
self, profile_id: str, name: str = None, description: str = None, expiration_duration: int = None
) -> dict:
"""
Update a profile.

Expand Down
48 changes: 30 additions & 18 deletions src/britive/access_broker/profiles/policies.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,21 @@ def create(
:param name: Name of the policy.
:param access_type: Access type of the policy.
:param condition: Condition of the policy.
:param members: List of member objects.
Example: [
{
'id': 'string',
'name': 'string',
'memberType': 'User',
},
...
]
:param members: Dict of member type objects.
Example: {
users: [
{'id': '...'}
],
tags: [
{'id': '...'}
],
tokens: [
{'id': '...'}
],
serviceIdentities: [
{'id': '...'}
],
}
:param is_active: Is active.
:param is_draft: Is draft.
:param is_read_only: Is read only.
Expand Down Expand Up @@ -103,15 +109,21 @@ def update(
:param name: Name of the policy.
:param access_type: Access type of the policy.
:param condition: Condition of the policy.
:param members: List of member objects.
Example: [
{
'id': 'string',
'name': 'string',
'memberType': 'User',
},
...
]
:param members: Dict of member type objects.
Example: {
users: [
{'id': '...'}
],
tags: [
{'id': '...'}
],
tokens: [
{'id': '...'}
],
serviceIdentities: [
{'id': '...'}
],
}
:param is_active: Is active.
:param is_draft: Is draft.
:param is_read_only: Is read only.
Expand Down
62 changes: 31 additions & 31 deletions src/britive/access_broker/resources/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,26 +6,10 @@
class Resources:
def __init__(self, britive) -> None:
self.britive = britive
self.base_url = f'{self.britive.base_url}/resource-manager/resources'
self.labels = Labels(britive)
self.types = Types(britive)
self.permissions = Permissions(britive)
self.base_url = f'{self.britive.base_url}/resource-manager/resources'

def list(self, filter_expression: str = '', search_text: str = '') -> list:
"""
Retrieve all resources.

:param filter_expression: Parameter to filter resources by name. Example: `name eq profile1`.
:param search_text: Filter resources by search text.
:return: List of resources.
"""

params = {
**({'filter': filter_expression} if filter_expression else {}),
**({'searchText': search_text} if search_text else {}),
}

return self.britive.get(f'{self.base_url}', params=params)
self.types = Types(britive)

def create(self, name: str, resource_type_id: str, description: str = '', param_values: dict = None) -> dict:
"""
Expand All @@ -50,6 +34,17 @@ def create(self, name: str, resource_type_id: str, description: str = '', param_

return self.britive.post(self.base_url, json=params)

def add_broker_pools(self, resource_id: str, pools: list) -> list:
"""
Add broker pools to a resource.

:param resource_id: ID of the resource.
:param pools: List of broker pools.
:return: List of broker pools.
"""

return self.britive.post(f'{self.base_url}/{resource_id}/broker-pools', json=pools)

def get(self, resource_id: str) -> dict:
"""
Retrieve a resource by ID.
Expand All @@ -60,7 +55,23 @@ def get(self, resource_id: str) -> dict:

return self.britive.get(f'{self.base_url}/{resource_id}')

def update(self, resource_id: str, description: str = '', resource_labels: list = None) -> dict:
def list(self, filter_expression: str = None, search_text: str = None) -> list:
"""
Retrieve all resources.

:param filter_expression: Parameter to filter resources by name. Example: `name eq profile1`.
:param search_text: Filter resources by search text.
:return: List of resources.
"""

params = {
**({'filter': filter_expression} if filter_expression else {}),
**({'searchText': search_text} if search_text else {}),
}

return self.britive.get(f'{self.base_url}', params=params)

def update(self, resource_id: str, description: str = None, resource_labels: list = None) -> dict:
"""
Update a resource.

Expand All @@ -80,7 +91,7 @@ def update(self, resource_id: str, description: str = '', resource_labels: list

return self.britive.put(f'{self.base_url}/{resource_id}', json=params)

def delete(self, resource_id: str) -> dict:
def delete(self, resource_id: str) -> None:
"""
Delete a resource.

Expand All @@ -89,14 +100,3 @@ def delete(self, resource_id: str) -> dict:
"""

return self.britive.delete(f'{self.base_url}/{resource_id}')

def add_broker_pools(self, resource_id: str, pools: list) -> list:
"""
Add broker pools to a resource.

:param resource_id: ID of the resource.
:param pools: List of broker pools.
:return: List of broker pools.
"""

return self.britive.post(f'{self.base_url}/{resource_id}/broker-pools', json=pools)
20 changes: 10 additions & 10 deletions src/britive/access_broker/resources/labels.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,16 @@ def create(self, name: str, description: str = '', values: list = None) -> dict:

return self.britive.post(self.base_url, json=params)

def get(self, label_id: str) -> dict:
"""
Retrieve a label by ID.

:param label_id: ID of the label.
:return: Label.
"""

return self.britive.get(f'{self.base_url}/{label_id}')

def list(self) -> list:
"""
Retrieve all labels.
Expand Down Expand Up @@ -50,16 +60,6 @@ def update(self, label_id: str, name: str = None, description: str = None, value

return self.britive.put(f'{self.base_url}/{label_id}', json=params)

def get(self, label_id: str) -> dict:
"""
Retrieve a label by ID.

:param label_id: ID of the label.
:return: Label.
"""

return self.britive.get(f'{self.base_url}/{label_id}')

def delete(self, label_id: str) -> None:
"""
Delete a label.
Expand Down
Loading