{"id":39160658,"url":"https://github.com/opalsecurity/opal-python","last_synced_at":"2026-01-17T22:03:46.221Z","repository":{"id":38820003,"uuid":"427469747","full_name":"opalsecurity/opal-python","owner":"opalsecurity","description":"Opal Python SDK","archived":false,"fork":false,"pushed_at":"2025-08-04T23:30:32.000Z","size":884,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-05T01:15:05.849Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/opalsecurity.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-11-12T19:09:27.000Z","updated_at":"2025-08-04T23:30:36.000Z","dependencies_parsed_at":"2025-03-05T01:26:00.676Z","dependency_job_id":"5313bcb0-88b0-452c-997c-3c7da86efec1","html_url":"https://github.com/opalsecurity/opal-python","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/opalsecurity/opal-python","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opalsecurity%2Fopal-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opalsecurity%2Fopal-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opalsecurity%2Fopal-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opalsecurity%2Fopal-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/opalsecurity","download_url":"https://codeload.github.com/opalsecurity/opal-python/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/opalsecurity%2Fopal-python/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28519335,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T18:55:29.170Z","status":"ssl_error","status_checked_at":"2026-01-17T18:55:03.375Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-17T22:03:46.142Z","updated_at":"2026-01-17T22:03:46.196Z","avatar_url":"https://github.com/opalsecurity.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# opal-security\nThe Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.\n\nThis Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:\n\n- API version: 1.0\n- [Releases](https://github.com/opalsecurity/opal-python/releases/)\n- Generator version: 7.10.0\n- Build package: org.openapitools.codegen.languages.PythonClientCodegen\n\nFor more information, please visit [https://www.opal.dev/](https://www.opal.dev/)\n\n## Requirements.\n\nPython 3.8+\n\n## Installation \u0026 Usage\n### pip install\nWe recommend installing from [PyPI](https://pypi.org) using `pip`:\n```sh\npip install opal-security\n```\n\nYou can also install via git:\n```sh\npip install git+https://github.com/opalsecurity/opal-python.git\n```\n(you may need to run `pip` with root permission: `sudo pip install git+https://github.com/opalsecurity/opal-python.git`)\n\nThen import the package:\n```python\nimport opal_security as opal\n```\n\n### Setuptools\n\nInstall via [Setuptools](http://pypi.python.org/pypi/setuptools).\n\n```sh\npython setup.py install --user\n```\n(or `sudo python setup.py install` to install the package for all users)\n\nThen import the package:\n```python\nimport opal_security as opal\n```\n\n### Tests\n\nExecute `pytest` to run the tests.\n\n## Getting Started\n\nPlease follow the [installation procedure](#installation--usage) and then run the following:\n\n```python\n\nfrom opal_security.rest import ApiException\nfrom pprint import pprint\n\n# Defining the host is optional and defaults to https://api.opal.dev/v1\n# See configuration.py for a list of all supported configuration parameters.\nimport opal_security as opal\n\nconfiguration = opal.Configuration(\n    host = \"https://api.opal.dev/v1\"\n)\n\n# The client must configure the authentication and authorization parameters\n# in accordance with the API server security policy.\n# Examples for each auth method are provided below, use the example that\n# satisfies your auth use case.\n\n# Configure Bearer authorization: BearerAuth\nconfiguration = opal.Configuration(\n    access_token = os.environ[\"BEARER_TOKEN\"]\n)\n\n\n# Enter a context with an instance of the API client\nwith opal.ApiClient(configuration) as api_client:\n    # Create an instance of the API class\n    api_instance = opal.AccessRulesApi(api_client)\n    update_access_rule_info = opal_security.UpdateAccessRuleInfo() # UpdateAccessRuleInfo | \n\n    try:\n        api_response = api_instance.create_access_rule(update_access_rule_info)\n        print(\"The response of AccessRulesApi-\u003ecreate_access_rule:\\n\")\n        pprint(api_response)\n    except ApiException as e:\n        print(\"Exception when calling AccessRulesApi-\u003ecreate_access_rule: %s\\n\" % e)\n\n```\n\nExample with Events API:\n\n```python\nimport time\nimport opal_security as opal\nfrom pprint import pprint\n# Defining the host is optional and defaults to https://api.opal.dev/v1\n# See configuration.py for a list of all supported configuration parameters.\nconfiguration = opal.Configuration(\n    host = \"https://api.opal.dev/v1\"\n)\n\n# The client must configure the authentication and authorization parameters\n# in accordance with the API server security policy.\n# Examples for each auth method are provided below, use the example that\n# satisfies your auth use case.\n\n# Configure Bearer authorization: BearerAuth\nconfiguration = opal.Configuration(\n    access_token = 'YOUR_BEARER_TOKEN'\n)\n\n\n# Enter a context with an instance of the API client\nwith opal.ApiClient(configuration) as api_client:\n    # Create an instance of the API class\n    api_instance = opal.EventsApi(api_client)\n    start_date_filter = \"2021/11/01\" # str | A start date filter for the events. (optional)\n    end_date_filter = \"2021-11-12\" # str | An end date filter for the events. (optional)\n    actor_filter = \"29827fb8-f2dd-4e80-9576-28e31e9934ac\" # str | An actor filter for the events. Supply the ID of the actor. (optional)\n    object_filter = \"29827fb8-f2dd-4e80-9576-28e31e9934ac\" # str | An object filter for the events. Supply the ID of the object. (optional)\n    event_type_filter = \"29827fb8-f2dd-4e80-9576-28e31e9934ac\" # str | An event type filter for the events. (optional)\n    cursor = \"cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw\" # str | The pagination cursor value. (optional)\n    page_size = 200 # int | Number of results to return per page. Default is 200. (optional)\n\n    try:\n        api_response = api_instance.events(start_date_filter=start_date_filter, end_date_filter=end_date_filter, actor_filter=actor_filter, object_filter=object_filter, event_type_filter=event_type_filter, cursor=cursor, page_size=page_size)\n        pprint(api_response.dict())\n    except opal.ApiException as e:\n        print(\"Exception when calling EventsApi-\u003eevents: %s\\n\" % e)\n```\n\n## Documentation for API Endpoints\n\nAll URIs are relative to *https://api.opal.dev/v1*\n\nClass | Method | HTTP request | Description\n------------ | ------------- | ------------- | -------------\n*AccessRulesApi* | [**create_access_rule**](docs/AccessRulesApi.md#create_access_rule) | **POST** /access-rules | \n*AccessRulesApi* | [**get_access_rule**](docs/AccessRulesApi.md#get_access_rule) | **GET** /access-rules/{access_rule_id} | \n*AccessRulesApi* | [**update_access_rule**](docs/AccessRulesApi.md#update_access_rule) | **PUT** /access-rules/{access_rule_id} | \n*AppsApi* | [**get_app**](docs/AppsApi.md#get_app) | **GET** /apps/{app_id} | Get app by ID\n*AppsApi* | [**get_apps**](docs/AppsApi.md#get_apps) | **GET** /apps | Get apps\n*AppsApi* | [**get_sync_errors**](docs/AppsApi.md#get_sync_errors) | **GET** /sync_errors | \n*BundlesApi* | [**add_bundle_group**](docs/BundlesApi.md#add_bundle_group) | **POST** /bundles/{bundle_id}/groups | \n*BundlesApi* | [**add_bundle_resource**](docs/BundlesApi.md#add_bundle_resource) | **POST** /bundles/{bundle_id}/resources | \n*BundlesApi* | [**create_bundle**](docs/BundlesApi.md#create_bundle) | **POST** /bundles | \n*BundlesApi* | [**delete_bundle**](docs/BundlesApi.md#delete_bundle) | **DELETE** /bundles/{bundle_id} | \n*BundlesApi* | [**get_bundle**](docs/BundlesApi.md#get_bundle) | **GET** /bundles/{bundle_id} | Get bundle by ID\n*BundlesApi* | [**get_bundle_groups**](docs/BundlesApi.md#get_bundle_groups) | **GET** /bundles/{bundle_id}/groups | \n*BundlesApi* | [**get_bundle_resources**](docs/BundlesApi.md#get_bundle_resources) | **GET** /bundles/{bundle_id}/resources | \n*BundlesApi* | [**get_bundle_visibility**](docs/BundlesApi.md#get_bundle_visibility) | **GET** /bundles/{bundle_id}/visibility | \n*BundlesApi* | [**get_bundles**](docs/BundlesApi.md#get_bundles) | **GET** /bundles | Get bundles\n*BundlesApi* | [**remove_bundle_group**](docs/BundlesApi.md#remove_bundle_group) | **DELETE** /bundles/{bundle_id}/groups/{group_id} | \n*BundlesApi* | [**remove_bundle_resource**](docs/BundlesApi.md#remove_bundle_resource) | **DELETE** /bundles/{bundle_id}/resources/{resource_id} | \n*BundlesApi* | [**set_bundle_visibility**](docs/BundlesApi.md#set_bundle_visibility) | **PUT** /bundles/{bundle_id}/visibility | \n*BundlesApi* | [**update_bundle**](docs/BundlesApi.md#update_bundle) | **PUT** /bundles/{bundle_id} | \n*ConfigurationTemplatesApi* | [**create_configuration_template**](docs/ConfigurationTemplatesApi.md#create_configuration_template) | **POST** /configuration-templates | \n*ConfigurationTemplatesApi* | [**delete_configuration_template**](docs/ConfigurationTemplatesApi.md#delete_configuration_template) | **DELETE** /configuration-templates/{configuration_template_id} | \n*ConfigurationTemplatesApi* | [**get_configuration_templates**](docs/ConfigurationTemplatesApi.md#get_configuration_templates) | **GET** /configuration-templates | \n*ConfigurationTemplatesApi* | [**update_configuration_template**](docs/ConfigurationTemplatesApi.md#update_configuration_template) | **PUT** /configuration-templates | \n*DelegationsApi* | [**create_delegation**](docs/DelegationsApi.md#create_delegation) | **POST** /delegations | \n*DelegationsApi* | [**delete_delegation**](docs/DelegationsApi.md#delete_delegation) | **DELETE** /delegations/{delegation_id} | \n*DelegationsApi* | [**get_delegation**](docs/DelegationsApi.md#get_delegation) | **GET** /delegations/{delegation_id} | Get delegation by ID\n*DelegationsApi* | [**get_delegations**](docs/DelegationsApi.md#get_delegations) | **GET** /delegations | Get delegations\n*EventsApi* | [**events**](docs/EventsApi.md#events) | **GET** /events | \n*GroupBindingsApi* | [**create_group_binding**](docs/GroupBindingsApi.md#create_group_binding) | **POST** /group-bindings | \n*GroupBindingsApi* | [**delete_group_binding**](docs/GroupBindingsApi.md#delete_group_binding) | **DELETE** /group-bindings/{group_binding_id} | \n*GroupBindingsApi* | [**get_group_binding**](docs/GroupBindingsApi.md#get_group_binding) | **GET** /group-bindings/{group_binding_id} | Get group binding by ID\n*GroupBindingsApi* | [**get_group_bindings**](docs/GroupBindingsApi.md#get_group_bindings) | **GET** /group-bindings | Get group bindings\n*GroupBindingsApi* | [**update_group_bindings**](docs/GroupBindingsApi.md#update_group_bindings) | **PUT** /group-bindings | \n*GroupsApi* | [**add_group_containing_group**](docs/GroupsApi.md#add_group_containing_group) | **POST** /groups/{group_id}/containing-groups | \n*GroupsApi* | [**add_group_resource**](docs/GroupsApi.md#add_group_resource) | **POST** /groups/{group_id}/resources/{resource_id} | \n*GroupsApi* | [**add_group_user**](docs/GroupsApi.md#add_group_user) | **POST** /groups/{group_id}/users/{user_id} | \n*GroupsApi* | [**create_group**](docs/GroupsApi.md#create_group) | **POST** /groups | \n*GroupsApi* | [**delete_group**](docs/GroupsApi.md#delete_group) | **DELETE** /groups/{group_id} | \n*GroupsApi* | [**delete_group_user**](docs/GroupsApi.md#delete_group_user) | **DELETE** /groups/{group_id}/users/{user_id} | \n*GroupsApi* | [**get_group**](docs/GroupsApi.md#get_group) | **GET** /groups/{group_id} | Get group by ID\n*GroupsApi* | [**get_group_containing_group**](docs/GroupsApi.md#get_group_containing_group) | **GET** /groups/{group_id}/containing-groups/{containing_group_id} | Get nested group by ID\n*GroupsApi* | [**get_group_containing_groups**](docs/GroupsApi.md#get_group_containing_groups) | **GET** /groups/{group_id}/containing-groups | Get nested groups\n*GroupsApi* | [**get_group_message_channels**](docs/GroupsApi.md#get_group_message_channels) | **GET** /groups/{group_id}/message-channels | \n*GroupsApi* | [**get_group_on_call_schedules**](docs/GroupsApi.md#get_group_on_call_schedules) | **GET** /groups/{group_id}/on-call-schedules | \n*GroupsApi* | [**get_group_resources**](docs/GroupsApi.md#get_group_resources) | **GET** /groups/{group_id}/resources | \n*GroupsApi* | [**get_group_reviewer_stages**](docs/GroupsApi.md#get_group_reviewer_stages) | **GET** /groups/{group_id}/reviewer-stages | \n*GroupsApi* | [**get_group_reviewers**](docs/GroupsApi.md#get_group_reviewers) | **GET** /groups/{group_id}/reviewers | \n*GroupsApi* | [**get_group_tags**](docs/GroupsApi.md#get_group_tags) | **GET** /groups/{group_id}/tags | \n*GroupsApi* | [**get_group_users**](docs/GroupsApi.md#get_group_users) | **GET** /groups/{group_id}/users | \n*GroupsApi* | [**get_group_visibility**](docs/GroupsApi.md#get_group_visibility) | **GET** /groups/{group_id}/visibility | \n*GroupsApi* | [**get_groups**](docs/GroupsApi.md#get_groups) | **GET** /groups | Get groups\n*GroupsApi* | [**get_user_groups**](docs/GroupsApi.md#get_user_groups) | **GET** /groups/users/{user_id} | \n*GroupsApi* | [**remove_group_containing_group**](docs/GroupsApi.md#remove_group_containing_group) | **DELETE** /groups/{group_id}/containing-groups/{containing_group_id} | \n*GroupsApi* | [**set_group_message_channels**](docs/GroupsApi.md#set_group_message_channels) | **PUT** /groups/{group_id}/message-channels | \n*GroupsApi* | [**set_group_on_call_schedules**](docs/GroupsApi.md#set_group_on_call_schedules) | **PUT** /groups/{group_id}/on-call-schedules | \n*GroupsApi* | [**set_group_resources**](docs/GroupsApi.md#set_group_resources) | **PUT** /groups/{group_id}/resources | \n*GroupsApi* | [**set_group_reviewer_stages**](docs/GroupsApi.md#set_group_reviewer_stages) | **PUT** /groups/{group_id}/reviewer-stages | \n*GroupsApi* | [**set_group_reviewers**](docs/GroupsApi.md#set_group_reviewers) | **PUT** /groups/{group_id}/reviewers | \n*GroupsApi* | [**set_group_visibility**](docs/GroupsApi.md#set_group_visibility) | **PUT** /groups/{group_id}/visibility | \n*GroupsApi* | [**update_group_user**](docs/GroupsApi.md#update_group_user) | **PUT** /groups/{group_id}/users/{user_id} | \n*GroupsApi* | [**update_groups**](docs/GroupsApi.md#update_groups) | **PUT** /groups | \n*IdpGroupMappingsApi* | [**create_idp_group_mapping**](docs/IdpGroupMappingsApi.md#create_idp_group_mapping) | **POST** /idp-group-mappings/{app_resource_id}/groups/{group_id} | \n*IdpGroupMappingsApi* | [**delete_idp_group_mappings**](docs/IdpGroupMappingsApi.md#delete_idp_group_mappings) | **DELETE** /idp-group-mappings/{app_resource_id}/groups/{group_id} | \n*IdpGroupMappingsApi* | [**get_idp_group_mapping**](docs/IdpGroupMappingsApi.md#get_idp_group_mapping) | **GET** /idp-group-mappings/{app_resource_id}/groups/{group_id} | \n*IdpGroupMappingsApi* | [**get_idp_group_mappings**](docs/IdpGroupMappingsApi.md#get_idp_group_mappings) | **GET** /idp-group-mappings/{app_resource_id} | \n*IdpGroupMappingsApi* | [**update_idp_group_mappings**](docs/IdpGroupMappingsApi.md#update_idp_group_mappings) | **PUT** /idp-group-mappings/{app_resource_id} | \n*MessageChannelsApi* | [**create_message_channel**](docs/MessageChannelsApi.md#create_message_channel) | **POST** /message-channels | \n*MessageChannelsApi* | [**get_message_channel**](docs/MessageChannelsApi.md#get_message_channel) | **GET** /message-channels/{message_channel_id} | Get message channel by ID\n*MessageChannelsApi* | [**get_message_channels**](docs/MessageChannelsApi.md#get_message_channels) | **GET** /message-channels | Get message channels\n*NonHumanIdentitiesApi* | [**get_nhis**](docs/NonHumanIdentitiesApi.md#get_nhis) | **GET** /non-human-identities | \n*OnCallSchedulesApi* | [**create_on_call_schedule**](docs/OnCallSchedulesApi.md#create_on_call_schedule) | **POST** /on-call-schedules | \n*OnCallSchedulesApi* | [**get_on_call_schedule**](docs/OnCallSchedulesApi.md#get_on_call_schedule) | **GET** /on-call-schedules/{on_call_schedule_id} | Get on call schedule by ID\n*OnCallSchedulesApi* | [**get_on_call_schedules**](docs/OnCallSchedulesApi.md#get_on_call_schedules) | **GET** /on-call-schedules | Get on call schedules\n*OwnersApi* | [**create_owner**](docs/OwnersApi.md#create_owner) | **POST** /owners | \n*OwnersApi* | [**delete_owner**](docs/OwnersApi.md#delete_owner) | **DELETE** /owners/{owner_id} | \n*OwnersApi* | [**get_owner**](docs/OwnersApi.md#get_owner) | **GET** /owners/{owner_id} | Get owner by ID\n*OwnersApi* | [**get_owner_from_name**](docs/OwnersApi.md#get_owner_from_name) | **GET** /owners/name/{owner_name} | \n*OwnersApi* | [**get_owner_users**](docs/OwnersApi.md#get_owner_users) | **GET** /owners/{owner_id}/users | \n*OwnersApi* | [**get_owners**](docs/OwnersApi.md#get_owners) | **GET** /owners | Get owners\n*OwnersApi* | [**set_owner_users**](docs/OwnersApi.md#set_owner_users) | **PUT** /owners/{owner_id}/users | \n*OwnersApi* | [**update_owners**](docs/OwnersApi.md#update_owners) | **PUT** /owners | \n*RequestsApi* | [**approve_request**](docs/RequestsApi.md#approve_request) | **POST** /requests/{id}/approve | \n*RequestsApi* | [**create_request**](docs/RequestsApi.md#create_request) | **POST** /requests | \n*RequestsApi* | [**create_request_comment**](docs/RequestsApi.md#create_request_comment) | **POST** /requests/{id}/comments | \n*RequestsApi* | [**deny_request**](docs/RequestsApi.md#deny_request) | **POST** /requests/{id}/deny | \n*RequestsApi* | [**get_request**](docs/RequestsApi.md#get_request) | **GET** /requests/{id} | Get request by ID\n*RequestsApi* | [**get_request_comments**](docs/RequestsApi.md#get_request_comments) | **GET** /requests/{id}/comments | \n*RequestsApi* | [**get_requests**](docs/RequestsApi.md#get_requests) | **GET** /requests | Get requests\n*RequestsApi* | [**get_requests_relay**](docs/RequestsApi.md#get_requests_relay) | **GET** /requests/relay | Get requests via Relay\n*ResourcesApi* | [**add_resource_nhi**](docs/ResourcesApi.md#add_resource_nhi) | **POST** /resources/{resource_id}/non-human-identities/{non_human_identity_id} | \n*ResourcesApi* | [**add_resource_user**](docs/ResourcesApi.md#add_resource_user) | **POST** /resources/{resource_id}/users/{user_id} | \n*ResourcesApi* | [**create_resource**](docs/ResourcesApi.md#create_resource) | **POST** /resources | \n*ResourcesApi* | [**delete_resource**](docs/ResourcesApi.md#delete_resource) | **DELETE** /resources/{resource_id} | \n*ResourcesApi* | [**delete_resource_nhi**](docs/ResourcesApi.md#delete_resource_nhi) | **DELETE** /resources/{resource_id}/non-human-identities/{non_human_identity_id} | \n*ResourcesApi* | [**delete_resource_user**](docs/ResourcesApi.md#delete_resource_user) | **DELETE** /resources/{resource_id}/users/{user_id} | \n*ResourcesApi* | [**get_resource**](docs/ResourcesApi.md#get_resource) | **GET** /resources/{resource_id} | Get resource by ID\n*ResourcesApi* | [**get_resource_message_channels**](docs/ResourcesApi.md#get_resource_message_channels) | **GET** /resources/{resource_id}/message-channels | \n*ResourcesApi* | [**get_resource_nhis**](docs/ResourcesApi.md#get_resource_nhis) | **GET** /resources/{resource_id}/non-human-identities | \n*ResourcesApi* | [**get_resource_reviewer_stages**](docs/ResourcesApi.md#get_resource_reviewer_stages) | **GET** /resources/{resource_id}/reviewer-stages | \n*ResourcesApi* | [**get_resource_reviewers**](docs/ResourcesApi.md#get_resource_reviewers) | **GET** /resources/{resource_id}/reviewers | \n*ResourcesApi* | [**get_resource_scoped_role_permissions**](docs/ResourcesApi.md#get_resource_scoped_role_permissions) | **GET** /resources/{resource_id}/scoped-role-permissions | \n*ResourcesApi* | [**get_resource_tags**](docs/ResourcesApi.md#get_resource_tags) | **GET** /resources/{resource_id}/tags | \n*ResourcesApi* | [**get_resource_user**](docs/ResourcesApi.md#get_resource_user) | **GET** /resources/{resource_id}/users/{user_id} | Get resource user\n*ResourcesApi* | [**get_resource_users**](docs/ResourcesApi.md#get_resource_users) | **GET** /resources/{resource_id}/users | Get resource users\n*ResourcesApi* | [**get_resource_visibility**](docs/ResourcesApi.md#get_resource_visibility) | **GET** /resources/{resource_id}/visibility | \n*ResourcesApi* | [**get_resources**](docs/ResourcesApi.md#get_resources) | **GET** /resources | Get resources\n*ResourcesApi* | [**get_user_resources**](docs/ResourcesApi.md#get_user_resources) | **GET** /resources/users/{user_id} | \n*ResourcesApi* | [**resource_user_access_status_retrieve**](docs/ResourcesApi.md#resource_user_access_status_retrieve) | **GET** /resource-user-access-status/{resource_id}/{user_id} | \n*ResourcesApi* | [**set_resource_message_channels**](docs/ResourcesApi.md#set_resource_message_channels) | **PUT** /resources/{resource_id}/message-channels | \n*ResourcesApi* | [**set_resource_reviewer_stages**](docs/ResourcesApi.md#set_resource_reviewer_stages) | **PUT** /resources/{resource_id}/reviewer-stages | \n*ResourcesApi* | [**set_resource_reviewers**](docs/ResourcesApi.md#set_resource_reviewers) | **PUT** /resources/{resource_id}/reviewers | \n*ResourcesApi* | [**set_resource_scoped_role_permissions**](docs/ResourcesApi.md#set_resource_scoped_role_permissions) | **PUT** /resources/{resource_id}/scoped-role-permissions | \n*ResourcesApi* | [**set_resource_visibility**](docs/ResourcesApi.md#set_resource_visibility) | **PUT** /resources/{resource_id}/visibility | \n*ResourcesApi* | [**update_resource_user**](docs/ResourcesApi.md#update_resource_user) | **PUT** /resources/{resource_id}/users/{user_id} | \n*ResourcesApi* | [**update_resources**](docs/ResourcesApi.md#update_resources) | **PUT** /resources | \n*SessionsApi* | [**sessions**](docs/SessionsApi.md#sessions) | **GET** /sessions | \n*TagsApi* | [**add_group_tag**](docs/TagsApi.md#add_group_tag) | **POST** /tags/{tag_id}/groups/{group_id} | \n*TagsApi* | [**add_resource_tag**](docs/TagsApi.md#add_resource_tag) | **POST** /tags/{tag_id}/resources/{resource_id} | \n*TagsApi* | [**add_user_tag**](docs/TagsApi.md#add_user_tag) | **POST** /tags/{tag_id}/users/{user_id} | \n*TagsApi* | [**create_tag**](docs/TagsApi.md#create_tag) | **POST** /tag | \n*TagsApi* | [**delete_tag_by_id**](docs/TagsApi.md#delete_tag_by_id) | **DELETE** /tag/{tag_id} | \n*TagsApi* | [**get_tag**](docs/TagsApi.md#get_tag) | **GET** /tag | \n*TagsApi* | [**get_tag_by_id**](docs/TagsApi.md#get_tag_by_id) | **GET** /tag/{tag_id} | Get tag by ID\n*TagsApi* | [**get_tags**](docs/TagsApi.md#get_tags) | **GET** /tags | Get tags\n*TagsApi* | [**remove_group_tag**](docs/TagsApi.md#remove_group_tag) | **DELETE** /tags/{tag_id}/groups/{group_id} | \n*TagsApi* | [**remove_resource_tag**](docs/TagsApi.md#remove_resource_tag) | **DELETE** /tags/{tag_id}/resources/{resource_id} | \n*TagsApi* | [**remove_user_tag**](docs/TagsApi.md#remove_user_tag) | **DELETE** /tags/{tag_id}/users/{user_id} | \n*UarsApi* | [**create_uar**](docs/UarsApi.md#create_uar) | **POST** /uar | \n*UarsApi* | [**get_uar**](docs/UarsApi.md#get_uar) | **GET** /uar/{uar_id} | \n*UarsApi* | [**get_uars**](docs/UarsApi.md#get_uars) | **GET** /uars | \n*UsersApi* | [**get_remote_users**](docs/UsersApi.md#get_remote_users) | **GET** /users/remote_users | \n*UsersApi* | [**get_user_tags**](docs/UsersApi.md#get_user_tags) | **GET** /users/{user_id}/tags | \n*UsersApi* | [**get_users**](docs/UsersApi.md#get_users) | **GET** /users | \n*UsersApi* | [**user**](docs/UsersApi.md#user) | **GET** /user | \n\n\n## Documentation For Models\n\n - [Access](docs/Access.md)\n - [AccessList](docs/AccessList.md)\n - [AccessRule](docs/AccessRule.md)\n - [AddBundleGroupRequest](docs/AddBundleGroupRequest.md)\n - [AddBundleResourceRequest](docs/AddBundleResourceRequest.md)\n - [AddGroupResourceRequest](docs/AddGroupResourceRequest.md)\n - [AddGroupUserRequest](docs/AddGroupUserRequest.md)\n - [AddResourceNhiRequest](docs/AddResourceNhiRequest.md)\n - [AddResourceUserRequest](docs/AddResourceUserRequest.md)\n - [App](docs/App.md)\n - [AppTypeEnum](docs/AppTypeEnum.md)\n - [AppValidation](docs/AppValidation.md)\n - [AppValidationSeverityEnum](docs/AppValidationSeverityEnum.md)\n - [AppValidationStatusEnum](docs/AppValidationStatusEnum.md)\n - [ApproveRequest200Response](docs/ApproveRequest200Response.md)\n - [ApproveRequestRequest](docs/ApproveRequestRequest.md)\n - [AppsList](docs/AppsList.md)\n - [AwsPermissionSetMetadata](docs/AwsPermissionSetMetadata.md)\n - [AwsPermissionSetMetadataAwsPermissionSet](docs/AwsPermissionSetMetadataAwsPermissionSet.md)\n - [Bundle](docs/Bundle.md)\n - [BundleGroup](docs/BundleGroup.md)\n - [BundleResource](docs/BundleResource.md)\n - [Condition](docs/Condition.md)\n - [ConfigurationTemplate](docs/ConfigurationTemplate.md)\n - [CreateBundleInfo](docs/CreateBundleInfo.md)\n - [CreateConfigurationTemplateInfo](docs/CreateConfigurationTemplateInfo.md)\n - [CreateDelegationRequest](docs/CreateDelegationRequest.md)\n - [CreateGroupBindingInfo](docs/CreateGroupBindingInfo.md)\n - [CreateGroupBindingInfoGroupsInner](docs/CreateGroupBindingInfoGroupsInner.md)\n - [CreateGroupInfo](docs/CreateGroupInfo.md)\n - [CreateIdpGroupMappingRequest](docs/CreateIdpGroupMappingRequest.md)\n - [CreateMessageChannelInfo](docs/CreateMessageChannelInfo.md)\n - [CreateOnCallScheduleInfo](docs/CreateOnCallScheduleInfo.md)\n - [CreateOwnerInfo](docs/CreateOwnerInfo.md)\n - [CreateRequest200Response](docs/CreateRequest200Response.md)\n - [CreateRequestCommentRequest](docs/CreateRequestCommentRequest.md)\n - [CreateRequestConfigurationInfoList](docs/CreateRequestConfigurationInfoList.md)\n - [CreateRequestInfo](docs/CreateRequestInfo.md)\n - [CreateRequestInfoCustomMetadataInner](docs/CreateRequestInfoCustomMetadataInner.md)\n - [CreateRequestInfoGroupsInner](docs/CreateRequestInfoGroupsInner.md)\n - [CreateRequestInfoResourcesInner](docs/CreateRequestInfoResourcesInner.md)\n - [CreateRequestInfoSupportTicket](docs/CreateRequestInfoSupportTicket.md)\n - [CreateResourceInfo](docs/CreateResourceInfo.md)\n - [CreateTagInfo](docs/CreateTagInfo.md)\n - [CreateUARInfo](docs/CreateUARInfo.md)\n - [Delegation](docs/Delegation.md)\n - [DenyRequestRequest](docs/DenyRequestRequest.md)\n - [EntityTypeEnum](docs/EntityTypeEnum.md)\n - [Event](docs/Event.md)\n - [GetResourceUser200Response](docs/GetResourceUser200Response.md)\n - [Group](docs/Group.md)\n - [GroupAccessLevel](docs/GroupAccessLevel.md)\n - [GroupBinding](docs/GroupBinding.md)\n - [GroupBindingGroup](docs/GroupBindingGroup.md)\n - [GroupContainingGroup](docs/GroupContainingGroup.md)\n - [GroupContainingGroupList](docs/GroupContainingGroupList.md)\n - [GroupRemoteInfo](docs/GroupRemoteInfo.md)\n - [GroupRemoteInfoActiveDirectoryGroup](docs/GroupRemoteInfoActiveDirectoryGroup.md)\n - [GroupRemoteInfoAzureAdMicrosoft365Group](docs/GroupRemoteInfoAzureAdMicrosoft365Group.md)\n - [GroupRemoteInfoAzureAdSecurityGroup](docs/GroupRemoteInfoAzureAdSecurityGroup.md)\n - [GroupRemoteInfoDuoGroup](docs/GroupRemoteInfoDuoGroup.md)\n - [GroupRemoteInfoGithubTeam](docs/GroupRemoteInfoGithubTeam.md)\n - [GroupRemoteInfoGitlabGroup](docs/GroupRemoteInfoGitlabGroup.md)\n - [GroupRemoteInfoGoogleGroup](docs/GroupRemoteInfoGoogleGroup.md)\n - [GroupRemoteInfoLdapGroup](docs/GroupRemoteInfoLdapGroup.md)\n - [GroupRemoteInfoOktaGroup](docs/GroupRemoteInfoOktaGroup.md)\n - [GroupRemoteInfoOktaGroupRule](docs/GroupRemoteInfoOktaGroupRule.md)\n - [GroupRemoteInfoSnowflakeRole](docs/GroupRemoteInfoSnowflakeRole.md)\n - [GroupRemoteInfoWorkdayUserSecurityGroup](docs/GroupRemoteInfoWorkdayUserSecurityGroup.md)\n - [GroupResource](docs/GroupResource.md)\n - [GroupResourceList](docs/GroupResourceList.md)\n - [GroupTypeEnum](docs/GroupTypeEnum.md)\n - [GroupUser](docs/GroupUser.md)\n - [GroupUserList](docs/GroupUserList.md)\n - [GroupWithAccessLevel](docs/GroupWithAccessLevel.md)\n - [IdpGroupMapping](docs/IdpGroupMapping.md)\n - [IdpGroupMappingList](docs/IdpGroupMappingList.md)\n - [MessageChannel](docs/MessageChannel.md)\n - [MessageChannelIDList](docs/MessageChannelIDList.md)\n - [MessageChannelList](docs/MessageChannelList.md)\n - [MessageChannelProviderEnum](docs/MessageChannelProviderEnum.md)\n - [OnCallSchedule](docs/OnCallSchedule.md)\n - [OnCallScheduleIDList](docs/OnCallScheduleIDList.md)\n - [OnCallScheduleList](docs/OnCallScheduleList.md)\n - [OnCallScheduleProviderEnum](docs/OnCallScheduleProviderEnum.md)\n - [Owner](docs/Owner.md)\n - [PageInfo](docs/PageInfo.md)\n - [PaginatedAssignedRequestList](docs/PaginatedAssignedRequestList.md)\n - [PaginatedBundleGroupList](docs/PaginatedBundleGroupList.md)\n - [PaginatedBundleList](docs/PaginatedBundleList.md)\n - [PaginatedBundleResourceList](docs/PaginatedBundleResourceList.md)\n - [PaginatedConfigurationTemplateList](docs/PaginatedConfigurationTemplateList.md)\n - [PaginatedDelegationsList](docs/PaginatedDelegationsList.md)\n - [PaginatedEventList](docs/PaginatedEventList.md)\n - [PaginatedGroupBindingsList](docs/PaginatedGroupBindingsList.md)\n - [PaginatedGroupsList](docs/PaginatedGroupsList.md)\n - [PaginatedOwnersList](docs/PaginatedOwnersList.md)\n - [PaginatedRemoteUsersList](docs/PaginatedRemoteUsersList.md)\n - [PaginatedResourcesList](docs/PaginatedResourcesList.md)\n - [PaginatedTagsList](docs/PaginatedTagsList.md)\n - [PaginatedUARsList](docs/PaginatedUARsList.md)\n - [PaginatedUsersList](docs/PaginatedUsersList.md)\n - [PropagationStatus](docs/PropagationStatus.md)\n - [PropagationStatusEnum](docs/PropagationStatusEnum.md)\n - [RemoteUser](docs/RemoteUser.md)\n - [Request](docs/Request.md)\n - [RequestApprovalEnum](docs/RequestApprovalEnum.md)\n - [RequestComment](docs/RequestComment.md)\n - [RequestCommentList](docs/RequestCommentList.md)\n - [RequestConfiguration](docs/RequestConfiguration.md)\n - [RequestConnection](docs/RequestConnection.md)\n - [RequestCustomFieldResponse](docs/RequestCustomFieldResponse.md)\n - [RequestCustomFieldResponseFieldValue](docs/RequestCustomFieldResponseFieldValue.md)\n - [RequestEdge](docs/RequestEdge.md)\n - [RequestItemStages](docs/RequestItemStages.md)\n - [RequestList](docs/RequestList.md)\n - [RequestReviewer](docs/RequestReviewer.md)\n - [RequestReviewerStages](docs/RequestReviewerStages.md)\n - [RequestStage](docs/RequestStage.md)\n - [RequestStatusEnum](docs/RequestStatusEnum.md)\n - [RequestTemplateCustomFieldTypeEnum](docs/RequestTemplateCustomFieldTypeEnum.md)\n - [RequestedItem](docs/RequestedItem.md)\n - [Resource](docs/Resource.md)\n - [ResourceAccessLevel](docs/ResourceAccessLevel.md)\n - [ResourceAccessUser](docs/ResourceAccessUser.md)\n - [ResourceAccessUserList](docs/ResourceAccessUserList.md)\n - [ResourceNHI](docs/ResourceNHI.md)\n - [ResourceRemoteInfo](docs/ResourceRemoteInfo.md)\n - [ResourceRemoteInfoAnthropicWorkspace](docs/ResourceRemoteInfoAnthropicWorkspace.md)\n - [ResourceRemoteInfoAwsAccount](docs/ResourceRemoteInfoAwsAccount.md)\n - [ResourceRemoteInfoAwsEc2Instance](docs/ResourceRemoteInfoAwsEc2Instance.md)\n - [ResourceRemoteInfoAwsEksCluster](docs/ResourceRemoteInfoAwsEksCluster.md)\n - [ResourceRemoteInfoAwsIamRole](docs/ResourceRemoteInfoAwsIamRole.md)\n - [ResourceRemoteInfoAwsOrganizationalUnit](docs/ResourceRemoteInfoAwsOrganizationalUnit.md)\n - [ResourceRemoteInfoAwsPermissionSet](docs/ResourceRemoteInfoAwsPermissionSet.md)\n - [ResourceRemoteInfoAwsRdsInstance](docs/ResourceRemoteInfoAwsRdsInstance.md)\n - [ResourceRemoteInfoAzureEnterpriseApp](docs/ResourceRemoteInfoAzureEnterpriseApp.md)\n - [ResourceRemoteInfoAzureEntraIdRole](docs/ResourceRemoteInfoAzureEntraIdRole.md)\n - [ResourceRemoteInfoAzureManagementGroup](docs/ResourceRemoteInfoAzureManagementGroup.md)\n - [ResourceRemoteInfoAzureResourceGroup](docs/ResourceRemoteInfoAzureResourceGroup.md)\n - [ResourceRemoteInfoAzureSqlDatabase](docs/ResourceRemoteInfoAzureSqlDatabase.md)\n - [ResourceRemoteInfoAzureSqlManagedDatabase](docs/ResourceRemoteInfoAzureSqlManagedDatabase.md)\n - [ResourceRemoteInfoAzureSqlManagedInstance](docs/ResourceRemoteInfoAzureSqlManagedInstance.md)\n - [ResourceRemoteInfoAzureSqlServer](docs/ResourceRemoteInfoAzureSqlServer.md)\n - [ResourceRemoteInfoAzureStorageAccount](docs/ResourceRemoteInfoAzureStorageAccount.md)\n - [ResourceRemoteInfoAzureStorageContainer](docs/ResourceRemoteInfoAzureStorageContainer.md)\n - [ResourceRemoteInfoAzureSubscription](docs/ResourceRemoteInfoAzureSubscription.md)\n - [ResourceRemoteInfoAzureUserAssignedManagedIdentity](docs/ResourceRemoteInfoAzureUserAssignedManagedIdentity.md)\n - [ResourceRemoteInfoAzureVirtualMachine](docs/ResourceRemoteInfoAzureVirtualMachine.md)\n - [ResourceRemoteInfoCoupaRole](docs/ResourceRemoteInfoCoupaRole.md)\n - [ResourceRemoteInfoCursorOrganization](docs/ResourceRemoteInfoCursorOrganization.md)\n - [ResourceRemoteInfoCustomConnector](docs/ResourceRemoteInfoCustomConnector.md)\n - [ResourceRemoteInfoDatastaxAstraRole](docs/ResourceRemoteInfoDatastaxAstraRole.md)\n - [ResourceRemoteInfoGcpBigQueryDataset](docs/ResourceRemoteInfoGcpBigQueryDataset.md)\n - [ResourceRemoteInfoGcpBigQueryTable](docs/ResourceRemoteInfoGcpBigQueryTable.md)\n - [ResourceRemoteInfoGcpBucket](docs/ResourceRemoteInfoGcpBucket.md)\n - [ResourceRemoteInfoGcpComputeInstance](docs/ResourceRemoteInfoGcpComputeInstance.md)\n - [ResourceRemoteInfoGcpFolder](docs/ResourceRemoteInfoGcpFolder.md)\n - [ResourceRemoteInfoGcpGkeCluster](docs/ResourceRemoteInfoGcpGkeCluster.md)\n - [ResourceRemoteInfoGcpOrganization](docs/ResourceRemoteInfoGcpOrganization.md)\n - [ResourceRemoteInfoGcpProject](docs/ResourceRemoteInfoGcpProject.md)\n - [ResourceRemoteInfoGcpServiceAccount](docs/ResourceRemoteInfoGcpServiceAccount.md)\n - [ResourceRemoteInfoGcpSqlInstance](docs/ResourceRemoteInfoGcpSqlInstance.md)\n - [ResourceRemoteInfoGithubOrg](docs/ResourceRemoteInfoGithubOrg.md)\n - [ResourceRemoteInfoGithubOrgRole](docs/ResourceRemoteInfoGithubOrgRole.md)\n - [ResourceRemoteInfoGithubRepo](docs/ResourceRemoteInfoGithubRepo.md)\n - [ResourceRemoteInfoGitlabProject](docs/ResourceRemoteInfoGitlabProject.md)\n - [ResourceRemoteInfoGoogleWorkspaceRole](docs/ResourceRemoteInfoGoogleWorkspaceRole.md)\n - [ResourceRemoteInfoOktaApp](docs/ResourceRemoteInfoOktaApp.md)\n - [ResourceRemoteInfoOktaCustomRole](docs/ResourceRemoteInfoOktaCustomRole.md)\n - [ResourceRemoteInfoOktaStandardRole](docs/ResourceRemoteInfoOktaStandardRole.md)\n - [ResourceRemoteInfoOpenaiPlatformProject](docs/ResourceRemoteInfoOpenaiPlatformProject.md)\n - [ResourceRemoteInfoOpenaiPlatformServiceAccount](docs/ResourceRemoteInfoOpenaiPlatformServiceAccount.md)\n - [ResourceRemoteInfoOracleFusionRole](docs/ResourceRemoteInfoOracleFusionRole.md)\n - [ResourceRemoteInfoPagerdutyRole](docs/ResourceRemoteInfoPagerdutyRole.md)\n - [ResourceRemoteInfoSalesforcePermissionSet](docs/ResourceRemoteInfoSalesforcePermissionSet.md)\n - [ResourceRemoteInfoSalesforceProfile](docs/ResourceRemoteInfoSalesforceProfile.md)\n - [ResourceRemoteInfoSalesforceRole](docs/ResourceRemoteInfoSalesforceRole.md)\n - [ResourceRemoteInfoTeleportRole](docs/ResourceRemoteInfoTeleportRole.md)\n - [ResourceTypeEnum](docs/ResourceTypeEnum.md)\n - [ResourceUser](docs/ResourceUser.md)\n - [ResourceUserAccessStatus](docs/ResourceUserAccessStatus.md)\n - [ResourceUserAccessStatusEnum](docs/ResourceUserAccessStatusEnum.md)\n - [ResourceWithAccessLevel](docs/ResourceWithAccessLevel.md)\n - [ReviewStageOperator](docs/ReviewStageOperator.md)\n - [ReviewerIDList](docs/ReviewerIDList.md)\n - [ReviewerStage](docs/ReviewerStage.md)\n - [ReviewerStageList](docs/ReviewerStageList.md)\n - [RiskSensitivityEnum](docs/RiskSensitivityEnum.md)\n - [RolePermissionNameEnum](docs/RolePermissionNameEnum.md)\n - [RolePermissionTargetTypeEnum](docs/RolePermissionTargetTypeEnum.md)\n - [RuleClauses](docs/RuleClauses.md)\n - [RuleConjunction](docs/RuleConjunction.md)\n - [RuleDisjunction](docs/RuleDisjunction.md)\n - [ScopedRolePermission](docs/ScopedRolePermission.md)\n - [ScopedRolePermissionList](docs/ScopedRolePermissionList.md)\n - [Session](docs/Session.md)\n - [SessionsList](docs/SessionsList.md)\n - [SubEvent](docs/SubEvent.md)\n - [SyncError](docs/SyncError.md)\n - [SyncErrorList](docs/SyncErrorList.md)\n - [SyncTask](docs/SyncTask.md)\n - [Tag](docs/Tag.md)\n - [TagFilter](docs/TagFilter.md)\n - [TagSelector](docs/TagSelector.md)\n - [TagsList](docs/TagsList.md)\n - [ThirdPartyProviderEnum](docs/ThirdPartyProviderEnum.md)\n - [TicketPropagationConfiguration](docs/TicketPropagationConfiguration.md)\n - [TicketingProviderEnum](docs/TicketingProviderEnum.md)\n - [UAR](docs/UAR.md)\n - [UARReviewerAssignmentPolicyEnum](docs/UARReviewerAssignmentPolicyEnum.md)\n - [UARScope](docs/UARScope.md)\n - [UpdateAccessRuleInfo](docs/UpdateAccessRuleInfo.md)\n - [UpdateConfigurationTemplateInfo](docs/UpdateConfigurationTemplateInfo.md)\n - [UpdateGroupBindingInfo](docs/UpdateGroupBindingInfo.md)\n - [UpdateGroupBindingInfoList](docs/UpdateGroupBindingInfoList.md)\n - [UpdateGroupInfo](docs/UpdateGroupInfo.md)\n - [UpdateGroupInfoList](docs/UpdateGroupInfoList.md)\n - [UpdateGroupResourcesInfo](docs/UpdateGroupResourcesInfo.md)\n - [UpdateGroupUserRequest](docs/UpdateGroupUserRequest.md)\n - [UpdateIdpGroupMappingsRequest](docs/UpdateIdpGroupMappingsRequest.md)\n - [UpdateIdpGroupMappingsRequestMappingsInner](docs/UpdateIdpGroupMappingsRequestMappingsInner.md)\n - [UpdateOwnerInfo](docs/UpdateOwnerInfo.md)\n - [UpdateOwnerInfoList](docs/UpdateOwnerInfoList.md)\n - [UpdateResourceInfo](docs/UpdateResourceInfo.md)\n - [UpdateResourceInfoList](docs/UpdateResourceInfoList.md)\n - [UpdateResourceUserRequest](docs/UpdateResourceUserRequest.md)\n - [User](docs/User.md)\n - [UserHrIdpStatusEnum](docs/UserHrIdpStatusEnum.md)\n - [UserIDList](docs/UserIDList.md)\n - [UserList](docs/UserList.md)\n - [VisibilityInfo](docs/VisibilityInfo.md)\n - [VisibilityTypeEnum](docs/VisibilityTypeEnum.md)\n\n\n\u003ca id=\"documentation-for-authorization\"\u003e\u003c/a\u003e\n## Documentation For Authorization\n\n\nAuthentication schemes defined for the API:\n\u003ca id=\"BearerAuth\"\u003e\u003c/a\u003e\n### BearerAuth\n\n- **Type**: Bearer authentication\n\n\n## Author\n\nhello@opal.dev\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopalsecurity%2Fopal-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopalsecurity%2Fopal-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopalsecurity%2Fopal-python/lists"}