diff --git a/.gitignore b/.gitignore
index 43995bd..65b06b9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -62,5 +62,5 @@ docs/_build/
# PyBuilder
target/
-#Ipython Notebook
+# Ipython Notebook
.ipynb_checkpoints
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 8d6b781..5ebcb62 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -14,9 +14,6 @@ stages:
- pip install -r test-requirements.txt
- pytest --cov=opal_security
-pytest-3.8:
- extends: .pytest
- image: python:3.8-alpine
pytest-3.9:
extends: .pytest
image: python:3.9-alpine
@@ -29,3 +26,6 @@ pytest-3.11:
pytest-3.12:
extends: .pytest
image: python:3.12-alpine
+pytest-3.13:
+ extends: .pytest
+ image: python:3.13-alpine
diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES
index 62dab66..0f31149 100644
--- a/.openapi-generator/FILES
+++ b/.openapi-generator/FILES
@@ -68,16 +68,24 @@ docs/GroupContainingGroup.md
docs/GroupContainingGroupList.md
docs/GroupRemoteInfo.md
docs/GroupRemoteInfoActiveDirectoryGroup.md
+docs/GroupRemoteInfoAwsSsoGroup.md
docs/GroupRemoteInfoAzureAdMicrosoft365Group.md
docs/GroupRemoteInfoAzureAdSecurityGroup.md
+docs/GroupRemoteInfoConnectorGroup.md
+docs/GroupRemoteInfoDatabricksAccountGroup.md
+docs/GroupRemoteInfoDevinGroup.md
docs/GroupRemoteInfoDuoGroup.md
docs/GroupRemoteInfoGithubTeam.md
docs/GroupRemoteInfoGitlabGroup.md
docs/GroupRemoteInfoGoogleGroup.md
+docs/GroupRemoteInfoIncidentioOnCallSchedule.md
docs/GroupRemoteInfoLdapGroup.md
docs/GroupRemoteInfoOktaGroup.md
docs/GroupRemoteInfoOktaGroupRule.md
+docs/GroupRemoteInfoPagerdutyOnCallSchedule.md
+docs/GroupRemoteInfoRootlyOnCallSchedule.md
docs/GroupRemoteInfoSnowflakeRole.md
+docs/GroupRemoteInfoTailscaleGroup.md
docs/GroupRemoteInfoWorkdayUserSecurityGroup.md
docs/GroupResource.md
docs/GroupResourceList.md
@@ -120,6 +128,7 @@ docs/PaginatedUARsList.md
docs/PaginatedUsersList.md
docs/PropagationStatus.md
docs/PropagationStatusEnum.md
+docs/RDSEngineEnum.md
docs/RemoteUser.md
docs/Request.md
docs/RequestApprovalEnum.md
@@ -152,6 +161,7 @@ docs/ResourceRemoteInfoAwsEksCluster.md
docs/ResourceRemoteInfoAwsIamRole.md
docs/ResourceRemoteInfoAwsOrganizationalUnit.md
docs/ResourceRemoteInfoAwsPermissionSet.md
+docs/ResourceRemoteInfoAwsRdsCluster.md
docs/ResourceRemoteInfoAwsRdsInstance.md
docs/ResourceRemoteInfoAzureEnterpriseApp.md
docs/ResourceRemoteInfoAzureEntraIdRole.md
@@ -169,7 +179,10 @@ docs/ResourceRemoteInfoAzureVirtualMachine.md
docs/ResourceRemoteInfoCoupaRole.md
docs/ResourceRemoteInfoCursorOrganization.md
docs/ResourceRemoteInfoCustomConnector.md
+docs/ResourceRemoteInfoDatabricksAccountServicePrincipal.md
docs/ResourceRemoteInfoDatastaxAstraRole.md
+docs/ResourceRemoteInfoDevinOrganization.md
+docs/ResourceRemoteInfoDevinRole.md
docs/ResourceRemoteInfoGcpBigQueryDataset.md
docs/ResourceRemoteInfoGcpBigQueryTable.md
docs/ResourceRemoteInfoGcpBucket.md
@@ -185,6 +198,7 @@ docs/ResourceRemoteInfoGithubOrgRole.md
docs/ResourceRemoteInfoGithubRepo.md
docs/ResourceRemoteInfoGitlabProject.md
docs/ResourceRemoteInfoGoogleWorkspaceRole.md
+docs/ResourceRemoteInfoIlevelAdvancedRole.md
docs/ResourceRemoteInfoOktaApp.md
docs/ResourceRemoteInfoOktaCustomRole.md
docs/ResourceRemoteInfoOktaStandardRole.md
@@ -195,7 +209,12 @@ docs/ResourceRemoteInfoPagerdutyRole.md
docs/ResourceRemoteInfoSalesforcePermissionSet.md
docs/ResourceRemoteInfoSalesforceProfile.md
docs/ResourceRemoteInfoSalesforceRole.md
+docs/ResourceRemoteInfoSnowflakeDatabase.md
+docs/ResourceRemoteInfoSnowflakeSchema.md
+docs/ResourceRemoteInfoSnowflakeTable.md
+docs/ResourceRemoteInfoTailscaleSsh.md
docs/ResourceRemoteInfoTeleportRole.md
+docs/ResourceRemoteInfoWorkdayRole.md
docs/ResourceTypeEnum.md
docs/ResourceUser.md
docs/ResourceUserAccessStatus.md
@@ -340,16 +359,24 @@ opal_security/models/group_containing_group.py
opal_security/models/group_containing_group_list.py
opal_security/models/group_remote_info.py
opal_security/models/group_remote_info_active_directory_group.py
+opal_security/models/group_remote_info_aws_sso_group.py
opal_security/models/group_remote_info_azure_ad_microsoft365_group.py
opal_security/models/group_remote_info_azure_ad_security_group.py
+opal_security/models/group_remote_info_connector_group.py
+opal_security/models/group_remote_info_databricks_account_group.py
+opal_security/models/group_remote_info_devin_group.py
opal_security/models/group_remote_info_duo_group.py
opal_security/models/group_remote_info_github_team.py
opal_security/models/group_remote_info_gitlab_group.py
opal_security/models/group_remote_info_google_group.py
+opal_security/models/group_remote_info_incidentio_on_call_schedule.py
opal_security/models/group_remote_info_ldap_group.py
opal_security/models/group_remote_info_okta_group.py
opal_security/models/group_remote_info_okta_group_rule.py
+opal_security/models/group_remote_info_pagerduty_on_call_schedule.py
+opal_security/models/group_remote_info_rootly_on_call_schedule.py
opal_security/models/group_remote_info_snowflake_role.py
+opal_security/models/group_remote_info_tailscale_group.py
opal_security/models/group_remote_info_workday_user_security_group.py
opal_security/models/group_resource.py
opal_security/models/group_resource_list.py
@@ -386,6 +413,7 @@ opal_security/models/paginated_uars_list.py
opal_security/models/paginated_users_list.py
opal_security/models/propagation_status.py
opal_security/models/propagation_status_enum.py
+opal_security/models/rds_engine_enum.py
opal_security/models/remote_user.py
opal_security/models/request.py
opal_security/models/request_approval_enum.py
@@ -417,6 +445,7 @@ opal_security/models/resource_remote_info_aws_eks_cluster.py
opal_security/models/resource_remote_info_aws_iam_role.py
opal_security/models/resource_remote_info_aws_organizational_unit.py
opal_security/models/resource_remote_info_aws_permission_set.py
+opal_security/models/resource_remote_info_aws_rds_cluster.py
opal_security/models/resource_remote_info_aws_rds_instance.py
opal_security/models/resource_remote_info_azure_enterprise_app.py
opal_security/models/resource_remote_info_azure_entra_id_role.py
@@ -434,7 +463,10 @@ opal_security/models/resource_remote_info_azure_virtual_machine.py
opal_security/models/resource_remote_info_coupa_role.py
opal_security/models/resource_remote_info_cursor_organization.py
opal_security/models/resource_remote_info_custom_connector.py
+opal_security/models/resource_remote_info_databricks_account_service_principal.py
opal_security/models/resource_remote_info_datastax_astra_role.py
+opal_security/models/resource_remote_info_devin_organization.py
+opal_security/models/resource_remote_info_devin_role.py
opal_security/models/resource_remote_info_gcp_big_query_dataset.py
opal_security/models/resource_remote_info_gcp_big_query_table.py
opal_security/models/resource_remote_info_gcp_bucket.py
@@ -450,6 +482,7 @@ opal_security/models/resource_remote_info_github_org_role.py
opal_security/models/resource_remote_info_github_repo.py
opal_security/models/resource_remote_info_gitlab_project.py
opal_security/models/resource_remote_info_google_workspace_role.py
+opal_security/models/resource_remote_info_ilevel_advanced_role.py
opal_security/models/resource_remote_info_okta_app.py
opal_security/models/resource_remote_info_okta_custom_role.py
opal_security/models/resource_remote_info_okta_standard_role.py
@@ -460,7 +493,12 @@ opal_security/models/resource_remote_info_pagerduty_role.py
opal_security/models/resource_remote_info_salesforce_permission_set.py
opal_security/models/resource_remote_info_salesforce_profile.py
opal_security/models/resource_remote_info_salesforce_role.py
+opal_security/models/resource_remote_info_snowflake_database.py
+opal_security/models/resource_remote_info_snowflake_schema.py
+opal_security/models/resource_remote_info_snowflake_table.py
+opal_security/models/resource_remote_info_tailscale_ssh.py
opal_security/models/resource_remote_info_teleport_role.py
+opal_security/models/resource_remote_info_workday_role.py
opal_security/models/resource_type_enum.py
opal_security/models/resource_user.py
opal_security/models/resource_user_access_status.py
@@ -523,28 +561,23 @@ setup.cfg
setup.py
test-requirements.txt
test/__init__.py
-test/test_create_delegation_request.py
-test/test_delegation.py
-test/test_delegations_api.py
-test/test_paginated_delegations_list.py
-test/test_resource_remote_info_anthropic_workspace.py
-test/test_resource_remote_info_azure_enterprise_app.py
-test/test_resource_remote_info_azure_entra_id_role.py
-test/test_resource_remote_info_azure_management_group.py
-test/test_resource_remote_info_azure_resource_group.py
-test/test_resource_remote_info_azure_sql_database.py
-test/test_resource_remote_info_azure_sql_managed_database.py
-test/test_resource_remote_info_azure_sql_managed_instance.py
-test/test_resource_remote_info_azure_sql_server.py
-test/test_resource_remote_info_azure_storage_account.py
-test/test_resource_remote_info_azure_storage_container.py
-test/test_resource_remote_info_azure_subscription.py
-test/test_resource_remote_info_azure_user_assigned_managed_identity.py
-test/test_resource_remote_info_azure_virtual_machine.py
-test/test_resource_remote_info_coupa_role.py
-test/test_resource_remote_info_cursor_organization.py
-test/test_resource_remote_info_github_org.py
-test/test_resource_remote_info_openai_platform_project.py
-test/test_resource_remote_info_openai_platform_service_account.py
-test/test_resource_remote_info_oracle_fusion_role.py
+test/test_group_remote_info_aws_sso_group.py
+test/test_group_remote_info_connector_group.py
+test/test_group_remote_info_databricks_account_group.py
+test/test_group_remote_info_devin_group.py
+test/test_group_remote_info_incidentio_on_call_schedule.py
+test/test_group_remote_info_pagerduty_on_call_schedule.py
+test/test_group_remote_info_rootly_on_call_schedule.py
+test/test_group_remote_info_tailscale_group.py
+test/test_rds_engine_enum.py
+test/test_resource_remote_info_aws_rds_cluster.py
+test/test_resource_remote_info_databricks_account_service_principal.py
+test/test_resource_remote_info_devin_organization.py
+test/test_resource_remote_info_devin_role.py
+test/test_resource_remote_info_ilevel_advanced_role.py
+test/test_resource_remote_info_snowflake_database.py
+test/test_resource_remote_info_snowflake_schema.py
+test/test_resource_remote_info_snowflake_table.py
+test/test_resource_remote_info_tailscale_ssh.py
+test/test_resource_remote_info_workday_role.py
tox.ini
diff --git a/.openapi-generator/VERSION b/.openapi-generator/VERSION
index 758bb9c..3821090 100644
--- a/.openapi-generator/VERSION
+++ b/.openapi-generator/VERSION
@@ -1 +1 @@
-7.10.0
+7.19.0
diff --git a/.travis.yml b/.travis.yml
index 6c5030e..ccfd00c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,13 +1,13 @@
# ref: https://docs.travis-ci.com/user/languages/python
language: python
python:
- - "3.8"
- "3.9"
- "3.10"
- "3.11"
- "3.12"
+ - "3.13"
# uncomment the following if needed
- #- "3.12-dev" # 3.12 development branch
+ #- "3.13-dev" # 3.13 development branch
#- "nightly" # nightly build
# command to install dependencies
install:
diff --git a/README.md b/README.md
index f325694..34b0f70 100644
--- a/README.md
+++ b/README.md
@@ -5,14 +5,14 @@ This Python package is automatically generated by the [OpenAPI Generator](https:
- API version: 1.0
- [Releases](https://github.com/opalsecurity/opal-python/releases/)
-- Generator version: 7.10.0
+- Generator version: 7.19.0
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
For more information, please visit [https://www.opal.dev/](https://www.opal.dev/)
## Requirements.
-Python 3.8+
+Python 3.9+
## Installation & Usage
### pip install
@@ -77,7 +77,6 @@ configuration = opal.Configuration(
access_token = os.environ["BEARER_TOKEN"]
)
-
# Enter a context with an instance of the API client
with opal.ApiClient(configuration) as api_client:
# Create an instance of the API class
@@ -237,6 +236,7 @@ Class | Method | HTTP request | Description
*ResourcesApi* | [**delete_resource_nhi**](docs/ResourcesApi.md#delete_resource_nhi) | **DELETE** /resources/{resource_id}/non-human-identities/{non_human_identity_id} |
*ResourcesApi* | [**delete_resource_user**](docs/ResourcesApi.md#delete_resource_user) | **DELETE** /resources/{resource_id}/users/{user_id} |
*ResourcesApi* | [**get_resource**](docs/ResourcesApi.md#get_resource) | **GET** /resources/{resource_id} | Get resource by ID
+*ResourcesApi* | [**get_resource_groups**](docs/ResourcesApi.md#get_resource_groups) | **GET** /resources/{resource_id}/groups |
*ResourcesApi* | [**get_resource_message_channels**](docs/ResourcesApi.md#get_resource_message_channels) | **GET** /resources/{resource_id}/message-channels |
*ResourcesApi* | [**get_resource_nhis**](docs/ResourcesApi.md#get_resource_nhis) | **GET** /resources/{resource_id}/non-human-identities |
*ResourcesApi* | [**get_resource_reviewer_stages**](docs/ResourcesApi.md#get_resource_reviewer_stages) | **GET** /resources/{resource_id}/reviewer-stages |
@@ -337,16 +337,24 @@ Class | Method | HTTP request | Description
- [GroupContainingGroupList](docs/GroupContainingGroupList.md)
- [GroupRemoteInfo](docs/GroupRemoteInfo.md)
- [GroupRemoteInfoActiveDirectoryGroup](docs/GroupRemoteInfoActiveDirectoryGroup.md)
+ - [GroupRemoteInfoAwsSsoGroup](docs/GroupRemoteInfoAwsSsoGroup.md)
- [GroupRemoteInfoAzureAdMicrosoft365Group](docs/GroupRemoteInfoAzureAdMicrosoft365Group.md)
- [GroupRemoteInfoAzureAdSecurityGroup](docs/GroupRemoteInfoAzureAdSecurityGroup.md)
+ - [GroupRemoteInfoConnectorGroup](docs/GroupRemoteInfoConnectorGroup.md)
+ - [GroupRemoteInfoDatabricksAccountGroup](docs/GroupRemoteInfoDatabricksAccountGroup.md)
+ - [GroupRemoteInfoDevinGroup](docs/GroupRemoteInfoDevinGroup.md)
- [GroupRemoteInfoDuoGroup](docs/GroupRemoteInfoDuoGroup.md)
- [GroupRemoteInfoGithubTeam](docs/GroupRemoteInfoGithubTeam.md)
- [GroupRemoteInfoGitlabGroup](docs/GroupRemoteInfoGitlabGroup.md)
- [GroupRemoteInfoGoogleGroup](docs/GroupRemoteInfoGoogleGroup.md)
+ - [GroupRemoteInfoIncidentioOnCallSchedule](docs/GroupRemoteInfoIncidentioOnCallSchedule.md)
- [GroupRemoteInfoLdapGroup](docs/GroupRemoteInfoLdapGroup.md)
- [GroupRemoteInfoOktaGroup](docs/GroupRemoteInfoOktaGroup.md)
- [GroupRemoteInfoOktaGroupRule](docs/GroupRemoteInfoOktaGroupRule.md)
+ - [GroupRemoteInfoPagerdutyOnCallSchedule](docs/GroupRemoteInfoPagerdutyOnCallSchedule.md)
+ - [GroupRemoteInfoRootlyOnCallSchedule](docs/GroupRemoteInfoRootlyOnCallSchedule.md)
- [GroupRemoteInfoSnowflakeRole](docs/GroupRemoteInfoSnowflakeRole.md)
+ - [GroupRemoteInfoTailscaleGroup](docs/GroupRemoteInfoTailscaleGroup.md)
- [GroupRemoteInfoWorkdayUserSecurityGroup](docs/GroupRemoteInfoWorkdayUserSecurityGroup.md)
- [GroupResource](docs/GroupResource.md)
- [GroupResourceList](docs/GroupResourceList.md)
@@ -383,6 +391,7 @@ Class | Method | HTTP request | Description
- [PaginatedUsersList](docs/PaginatedUsersList.md)
- [PropagationStatus](docs/PropagationStatus.md)
- [PropagationStatusEnum](docs/PropagationStatusEnum.md)
+ - [RDSEngineEnum](docs/RDSEngineEnum.md)
- [RemoteUser](docs/RemoteUser.md)
- [Request](docs/Request.md)
- [RequestApprovalEnum](docs/RequestApprovalEnum.md)
@@ -414,6 +423,7 @@ Class | Method | HTTP request | Description
- [ResourceRemoteInfoAwsIamRole](docs/ResourceRemoteInfoAwsIamRole.md)
- [ResourceRemoteInfoAwsOrganizationalUnit](docs/ResourceRemoteInfoAwsOrganizationalUnit.md)
- [ResourceRemoteInfoAwsPermissionSet](docs/ResourceRemoteInfoAwsPermissionSet.md)
+ - [ResourceRemoteInfoAwsRdsCluster](docs/ResourceRemoteInfoAwsRdsCluster.md)
- [ResourceRemoteInfoAwsRdsInstance](docs/ResourceRemoteInfoAwsRdsInstance.md)
- [ResourceRemoteInfoAzureEnterpriseApp](docs/ResourceRemoteInfoAzureEnterpriseApp.md)
- [ResourceRemoteInfoAzureEntraIdRole](docs/ResourceRemoteInfoAzureEntraIdRole.md)
@@ -431,7 +441,10 @@ Class | Method | HTTP request | Description
- [ResourceRemoteInfoCoupaRole](docs/ResourceRemoteInfoCoupaRole.md)
- [ResourceRemoteInfoCursorOrganization](docs/ResourceRemoteInfoCursorOrganization.md)
- [ResourceRemoteInfoCustomConnector](docs/ResourceRemoteInfoCustomConnector.md)
+ - [ResourceRemoteInfoDatabricksAccountServicePrincipal](docs/ResourceRemoteInfoDatabricksAccountServicePrincipal.md)
- [ResourceRemoteInfoDatastaxAstraRole](docs/ResourceRemoteInfoDatastaxAstraRole.md)
+ - [ResourceRemoteInfoDevinOrganization](docs/ResourceRemoteInfoDevinOrganization.md)
+ - [ResourceRemoteInfoDevinRole](docs/ResourceRemoteInfoDevinRole.md)
- [ResourceRemoteInfoGcpBigQueryDataset](docs/ResourceRemoteInfoGcpBigQueryDataset.md)
- [ResourceRemoteInfoGcpBigQueryTable](docs/ResourceRemoteInfoGcpBigQueryTable.md)
- [ResourceRemoteInfoGcpBucket](docs/ResourceRemoteInfoGcpBucket.md)
@@ -447,6 +460,7 @@ Class | Method | HTTP request | Description
- [ResourceRemoteInfoGithubRepo](docs/ResourceRemoteInfoGithubRepo.md)
- [ResourceRemoteInfoGitlabProject](docs/ResourceRemoteInfoGitlabProject.md)
- [ResourceRemoteInfoGoogleWorkspaceRole](docs/ResourceRemoteInfoGoogleWorkspaceRole.md)
+ - [ResourceRemoteInfoIlevelAdvancedRole](docs/ResourceRemoteInfoIlevelAdvancedRole.md)
- [ResourceRemoteInfoOktaApp](docs/ResourceRemoteInfoOktaApp.md)
- [ResourceRemoteInfoOktaCustomRole](docs/ResourceRemoteInfoOktaCustomRole.md)
- [ResourceRemoteInfoOktaStandardRole](docs/ResourceRemoteInfoOktaStandardRole.md)
@@ -457,7 +471,12 @@ Class | Method | HTTP request | Description
- [ResourceRemoteInfoSalesforcePermissionSet](docs/ResourceRemoteInfoSalesforcePermissionSet.md)
- [ResourceRemoteInfoSalesforceProfile](docs/ResourceRemoteInfoSalesforceProfile.md)
- [ResourceRemoteInfoSalesforceRole](docs/ResourceRemoteInfoSalesforceRole.md)
+ - [ResourceRemoteInfoSnowflakeDatabase](docs/ResourceRemoteInfoSnowflakeDatabase.md)
+ - [ResourceRemoteInfoSnowflakeSchema](docs/ResourceRemoteInfoSnowflakeSchema.md)
+ - [ResourceRemoteInfoSnowflakeTable](docs/ResourceRemoteInfoSnowflakeTable.md)
+ - [ResourceRemoteInfoTailscaleSsh](docs/ResourceRemoteInfoTailscaleSsh.md)
- [ResourceRemoteInfoTeleportRole](docs/ResourceRemoteInfoTeleportRole.md)
+ - [ResourceRemoteInfoWorkdayRole](docs/ResourceRemoteInfoWorkdayRole.md)
- [ResourceTypeEnum](docs/ResourceTypeEnum.md)
- [ResourceUser](docs/ResourceUser.md)
- [ResourceUserAccessStatus](docs/ResourceUserAccessStatus.md)
@@ -529,4 +548,3 @@ Authentication schemes defined for the API:
hello@opal.dev
-
diff --git a/api/openapi.yaml b/api/openapi.yaml
index 6d9b28f..c5fd83d 100644
--- a/api/openapi.yaml
+++ b/api/openapi.yaml
@@ -1174,7 +1174,7 @@ paths:
description: Removes a containing group from a group.
operationId: remove_group_containing_group
parameters:
- - description: The ID of the group.
+ - description: The ID of the member group to remove.
example: 4baf8423-db0a-4037-a4cf-f79c60cb67a5
explode: false
in: path
@@ -1194,9 +1194,19 @@ paths:
format: uuid
type: string
style: simple
+ - description: The remote ID of the member group's access level to filter by.
+ example: arn:aws:iam::590304332660:role/AdministratorAccess
+ explode: true
+ in: query
+ name: access_level_remote_id
+ required: false
+ schema:
+ type: string
+ style: form
+
responses:
"204":
- description: The containing group was successfully removed from the group.
+ description: The member group was successfully removed from the containing group.
security:
- BearerAuth: []
tags:
@@ -3705,6 +3715,32 @@ paths:
- BearerAuth: []
tags:
- resources
+ /resources/{resource_id}/groups:
+ get:
+ description: Returns a list of groups that grant access to the resource
+ operationId: get_resource_groups
+ parameters:
+ - description: The ID of the resource that the groups grant access to.
+ name: resource_id
+ example: 1b978423-db0a-4037-a4cf-f79c60cb67b3
+ explode: false
+ in: path
+ required: true
+ schema:
+ format: uuid
+ type: string
+ style: simple
+ responses:
+ "200":
+ content:
+ application/json:
+ schema:
+ $ref: "#/components/schemas/GroupResourceList"
+ description: The groups that grant access to the resource.
+ security:
+ - BearerAuth: []
+ tags:
+ - resources
/sessions:
get:
description: Returns a list of `Session` objects.
@@ -4986,6 +5022,10 @@ components:
description: A bool representing whether to present a warning when a user is the only reviewer for themself. Default is False.
example: False
type: boolean
+ instantly_action_reviews:
+ description: A bool representing whether to instantly action changes when reviewers submit their decision. Default is False.
+ type: boolean
+ example: False
uar_scope:
$ref: "#/components/schemas/UARScope"
required:
@@ -4996,6 +5036,7 @@ components:
- send_reviewer_assignment_notification
- time_zone
- self_review_allowed
+ - instantly_action_reviews
type: object
CreateUARInfo:
description: Information needed to start a user access review.
@@ -5042,6 +5083,10 @@ components:
description: A bool representing whether to present a warning when a user is the only reviewer for themself. Default is False.
example: False
type: boolean
+ instantly_action_reviews:
+ description: A bool representing whether to instantly action changes when reviewers submit their decision. Default is False.
+ type: boolean
+ example: False
reminder_schedule:
items:
type: integer
@@ -5060,11 +5105,14 @@ components:
- self_review_allowed
type: object
UARReviewerAssignmentPolicyEnum:
- description: A policy for auto-assigning reviewers. If auto-assignment is on, specific assignments can still be manually adjusted after the access review is started. Default is Manually.
+ description: A policy for auto-assigning reviewers. If auto-assignment is on, specific assignments can still be manually adjusted after the access review is started. Default is Manually. BY_OWNING_TEAM_ADMIN assigns reviews to resource admins in round-robin fashion. BY_OWNING_TEAM_ADMIN_ALL assigns reviews to all resource admins. BY_APPROVERS assigns reviews to resource approvers in round-robin fashion. BY_APPROVERS_ALL assigns reviews to all resource approvers.
enum:
- MANUALLY
- BY_OWNING_TEAM_ADMIN
+ - BY_OWNING_TEAM_ADMIN_ALL
- BY_MANAGER
+ - BY_APPROVERS
+ - BY_APPROVERS_ALL
example: MANUALLY
type: string
TagFilter:
@@ -5156,25 +5204,34 @@ components:
description: The type of an app.
enum:
- ACTIVE_DIRECTORY
+ - ANTHROPIC
- AZURE_AD
- AWS
- AWS_SSO
+ - COUPA
+ - CURSOR
- CUSTOM
+ - DATABRICKS
+ - DATASTAX_ASTRA
- DUO
- GCP
- GIT_HUB
- GIT_LAB
- GOOGLE_GROUPS
- GOOGLE_WORKSPACE
+ - ILEVEL
+ - INCIDENTIO
- LDAP
- MARIADB
- MONGO
- MONGO_ATLAS
- MYSQL
- OKTA_DIRECTORY
+ - OPENAI_PLATFORM
- OPAL
- PAGERDUTY
- SALESFORCE
+ - SNOWFLAKE
- TAILSCALE
- TELEPORT
- WORKDAY
@@ -5541,6 +5598,14 @@ components:
example: 1b978423-db0a-4037-a4cf-f79c60cb67b3
format: uuid
type: string
+ resource_name:
+ description: The name of the resource.
+ example: AdministratorAccess
+ type: string
+ description:
+ description: The description of the resource.
+ example: Full access to all resources and settings.
+ type: string
user_id:
description: The ID of the user.
example: 29827fb8-f2dd-4e80-9576-28e31e9934ac
@@ -5957,12 +6022,14 @@ components:
- LINEAR
- SERVICE_NOW
- FRESH_SERVICE
+ - SHORTCUT
- PAGER_DUTY
- OPSGENIE
- GIT_HUB
- GIT_LAB
- GIT_LAB_CONNECTION
- TELEPORT
+ - SLACK
example: GIT_HUB
type: string
PaginatedGroupsList:
@@ -6023,6 +6090,20 @@ components:
example: b5a5ca27-0ea3-4d86-9199-2126d57d1fbd
format: uuid
type: string
+ group_name:
+ description: The name of the group
+ example: API Group
+ type: string
+ resource_name:
+ description: The name of the resource
+ example: API Group
+ type: string
+ expiration_date:
+ description: The day and time the group's access will expire.
+ example: 2022-01-23T04:56:07Z
+ format: date-time
+ nullable: true
+ type: string
access_level:
$ref: "#/components/schemas/ResourceAccessLevel"
required:
@@ -6043,6 +6124,15 @@ components:
example: f454d283-ca87-4a8a-bdbb-df212eca5353
format: uuid
type: string
+ duration_minutes:
+ description: The updated duration for which the group can be accessed (in minutes). Use 0 for indefinite.
+ type: integer
+ maximum: 525960 # One year
+ example: 120
+ access_level_remote_id:
+ description: The updated remote ID of the access level granted to this group.
+ type: string
+ example: arn:aws:iam::590304332660:role/ReadOnlyAccess
required:
- containing_group_id
type: object
@@ -6553,6 +6643,10 @@ components:
- CONNECTOR_GROUP
- SNOWFLAKE_ROLE
- WORKDAY_USER_SECURITY_GROUP
+ - PAGERDUTY_ON_CALL_SCHEDULE
+ - INCIDENTIO_ON_CALL_SCHEDULE
+ - ROOTLY_ON_CALL_SCHEDULE
+ - DEVIN_GROUP
example: OPAL_GROUP
type: string
ResourceTypeEnum:
@@ -6627,6 +6721,11 @@ components:
- ANTHROPIC_WORKSPACE
- GIT_HUB_ORG
- ORACLE_FUSION_ROLE
+ - DEVIN_ORGANIZATION
+ - DEVIN_ROLE
+ - VAULT_SECRET
+ - VAULT_POLICY
+ - VAULT_OIDC_ROLE
example: AWS_IAM_ROLE
type: string
VisibilityTypeEnum:
@@ -7074,6 +7173,10 @@ components:
- SERVICE_NOW
example: LINEAR
type: string
+ RDSEngineEnum:
+ type: string
+ description: "The database engine for the RDS instance."
+ enum: [MYSQL, POSTGRESQL]
GroupRemoteInfo:
description: Information that defines the remote group. This replaces the deprecated remote_id and metadata fields. If remote_info is provided, a group will be imported into Opal. For group types that support group creation through Opal, a new group will be created if remote_info is not provided.
properties:
@@ -7087,6 +7190,46 @@ components:
type: object
required:
- group_id
+ tailscale_group:
+ description: Remote info for Tailscale group.
+ properties:
+ group_id:
+ description: The id of the Tailscale group.
+ example: 898931321
+ type: string
+ type: object
+ required:
+ - group_id
+ aws_sso_group:
+ description: Remote info for AWS SSO group.
+ properties:
+ group_id:
+ description: The id of the AWS SSO group.
+ example: 898931321
+ type: string
+ type: object
+ required:
+ - group_id
+ databricks_account_group:
+ description: Remote info for Databricks account group.
+ properties:
+ group_id:
+ description: The id of the Databricks account group.
+ example: 898931321
+ type: string
+ type: object
+ required:
+ - group_id
+ connector_group:
+ description: Remote info for Connector group.
+ properties:
+ group_id:
+ description: The id of the Connector group.
+ example: 898931321
+ type: string
+ type: object
+ required:
+ - group_id
github_team:
description: Remote info for GitHub team.
properties:
@@ -7202,10 +7345,65 @@ components:
type: object
required:
- group_id
+ pagerduty_on_call_schedule:
+ description: Remote info for PagerDuty on-call schedule group.
+ properties:
+ schedule_id:
+ description: The id of the PagerDuty on-call schedule.
+ example: PNZNINN
+ type: string
+ type: object
+ required:
+ - schedule_id
+ incidentio_on_call_schedule:
+ description: Remote info for Incident.io on-call schedule group.
+ properties:
+ schedule_id:
+ description: The id of the Incident.io on-call schedule.
+ example: 01HZ8XQM9ZQX8RKMZQ8ZQX8RK
+ type: string
+ type: object
+ required:
+ - schedule_id
+ rootly_on_call_schedule:
+ description: Remote info for Rootly on-call schedule group.
+ properties:
+ schedule_id:
+ description: The id of the Rootly on-call schedule.
+ example: 01HZ8XQM9ZQX8RKMZQ8ZQX8RK
+ type: string
+ type: object
+ required:
+ - schedule_id
+ devin_group:
+ description: Remote info for Devin group.
+ properties:
+ group_name:
+ description: The name of the Devin group.
+ example: devin-group-01
+ type: string
+ type: object
+ required:
+ - group_name
type: object
ResourceRemoteInfo:
description: Information that defines the remote resource. This replaces the deprecated remote_id and metadata fields.
properties:
+ databricks_account_service_principal:
+ description: Remote info for Databricks account service principal.
+ properties:
+ application_id:
+ description: The application ID of the service principal.
+ example: 00000000-0000-0000-0000-000000000000
+ type: string
+ resource_id:
+ description: The resource ID of the service principal.
+ example: 00000000-0000-0000-0000-000000000000
+ type: string
+ type: object
+ required:
+ - application_id
+ - resource_id
azure_subscription:
description: Remote info for Azure subscription.
properties:
@@ -7412,6 +7610,40 @@ components:
required:
- instance_id
- region
+ aws_rds_cluster:
+ description: Remote info for AWS RDS cluster.
+ properties:
+ cluster_id:
+ description: The clusterId of the RDS cluster.
+ example: demo-mysql-cluster
+ type: string
+ region:
+ description: The region of the RDS cluster.
+ example: us-east-2
+ type: string
+ resource_id:
+ description: The resourceId of the RDS cluster.
+ example: cluster-AOO8V0XUCNU13XLZXQDQRSN0NQ
+ type: string
+ account_id:
+ description: The id of the AWS account. Required for AWS Organizations.
+ example: 234234234234
+ type: string
+ database_name:
+ description: The name of the database in the RDS cluster. This can be the value of the tag `opal:database-name` or the database name.
+ example: mydatabase
+ type: string
+ engine:
+ allOf:
+ - $ref: "#/components/schemas/RDSEngineEnum"
+ type: object
+ required:
+ - cluster_id
+ - region
+ - resource_id
+ - account_id
+ - database_name
+ - engine
aws_rds_instance:
description: Remote info for AWS RDS instance.
properties:
@@ -7690,6 +7922,71 @@ components:
type: object
required:
- role_id
+ snowflake_database:
+ description: Remote info for Snowflake database.
+ properties:
+ database_name:
+ description: The name of the database.
+ example: mydatabase
+ type: string
+ type: object
+ required:
+ - database_name
+ snowflake_schema:
+ description: Remote info for Snowflake schema.
+ properties:
+ database_name:
+ description: The name of the database the schema is in.
+ example: mydatabase
+ type: string
+ schema_name:
+ description: The name of the schema.
+ example: mycatalogschema
+ type: string
+ type: object
+ required:
+ - database_name
+ - schema_name
+ snowflake_table:
+ description: Remote info for Snowflake table.
+ properties:
+ database_name:
+ description: The name of the database the table is in.
+ example: mydatabase
+ type: string
+ schema_name:
+ description: The name of the schema the table is in.
+ example: mycatalogschema
+ type: string
+ table_name:
+ description: The name of the table.
+ example: myitemstable
+ type: string
+ type: object
+ required:
+ - database_name
+ - schema_name
+ - table_name
+ ilevel_advanced_role:
+ description: Remote info for iLevel Advanced role.
+ properties:
+ role_name:
+ description: The name of the role.
+ example: IT User
+ type: string
+ type: object
+ required:
+ - role_name
+ tailscale_ssh:
+ description: Remote info for Tailscale SSH tag.
+ properties:
+ tag_name:
+ description: The name of the tag.
+ example: admin
+ type: string
+ type: object
+ required:
+ - tag_name
pagerduty_role:
description: Remote info for Pagerduty role.
properties:
@@ -7700,6 +7997,17 @@ components:
type: object
required:
- role_name
+ workday_role:
+ description: Remote info for Workday role.
+ properties:
+ role_id:
+ description: The id of the role.
+ example: 123abc456def
+ type: string
+ type: object
+ required:
+ - role_id
+
salesforce_permission_set:
description: Remote info for Salesforce permission set.
properties:
@@ -7820,6 +8128,26 @@ components:
type: object
required:
- role_id
+ devin_organization:
+ description: Remote info for Devin organization.
+ properties:
+ org_id:
+ description: The id of the organization.
+ example: devin-org-01
+ type: string
+ type: object
+ required:
+ - org_id
+ devin_role:
+ description: Remote info for Devin role.
+ properties:
+ role_id:
+ description: The id of the role.
+ example: devin-role-01
+ type: string
+ type: object
+ required:
+ - role_id
type: object
RiskSensitivityEnum:
type: string
@@ -8445,10 +8773,12 @@ components:
description: The stages configuration for this request
$ref: "#/components/schemas/RequestItemStages"
reviewer_stages:
- description: The configured reviewer stages for every item in this request
- type: array
- items:
- $ref: "#/components/schemas/RequestReviewerStages"
+ description: The configured reviewer stages for every item in this request, or an error message if reviewers could not be loaded
+ oneOf:
+ - type: array
+ items:
+ $ref: "#/components/schemas/RequestReviewerStages"
+ - type: string
required:
- id
- created_at
@@ -10331,9 +10661,10 @@ components:
example: arn:aws:iam::490306337630:role/SupportUser
type: string
access_level_name:
- description: The ID of the access level requested on the remote system.
+ description: The ID of the access level requested on the remote system. This field is deprecated and no longer required. We will populate based on the access_level_remote_id.
example: arn:aws:iam::490306337630:role/SupportUser
type: string
+ deprecated: true
groups:
type: array
items:
diff --git a/docs/Access.md b/docs/Access.md
index b4f9af5..bdd49ba 100644
--- a/docs/Access.md
+++ b/docs/Access.md
@@ -6,9 +6,9 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**principal_id** | **str** | The ID of the principal with access. |
+**principal_id** | **UUID** | The ID of the principal with access. |
**principal_type** | [**EntityTypeEnum**](EntityTypeEnum.md) | |
-**entity_id** | **str** | The ID of the entity being accessed. |
+**entity_id** | **UUID** | The ID of the entity being accessed. |
**entity_type** | [**EntityTypeEnum**](EntityTypeEnum.md) | |
**access_level** | [**ResourceAccessLevel**](ResourceAccessLevel.md) | | [optional]
**expiration_date** | **datetime** | The day and time the principal's access will expire. | [optional]
diff --git a/docs/AccessRule.md b/docs/AccessRule.md
index 943471b..fd609da 100644
--- a/docs/AccessRule.md
+++ b/docs/AccessRule.md
@@ -6,10 +6,10 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**access_rule_id** | **str** | The ID (group ID) of the access rule. |
+**access_rule_id** | **UUID** | The ID (group ID) of the access rule. |
**name** | **str** | The name of the access rule. |
**description** | **str** | A description of the group. |
-**admin_owner_id** | **str** | The ID of the owner of the group. |
+**admin_owner_id** | **UUID** | The ID of the owner of the group. |
**status** | **str** | The status of the access rule. |
**rule_clauses** | [**RuleClauses**](RuleClauses.md) | |
diff --git a/docs/AccessRulesApi.md b/docs/AccessRulesApi.md
index 5c9f233..34e92d3 100644
--- a/docs/AccessRulesApi.md
+++ b/docs/AccessRulesApi.md
@@ -12,8 +12,6 @@ Method | HTTP request | Description
# **create_access_rule**
> AccessRule create_access_rule(update_access_rule_info)
-
-
Creates a new access rule config for the given group_id.
### Example
@@ -92,8 +90,6 @@ Name | Type | Description | Notes
# **get_access_rule**
> AccessRule get_access_rule(access_rule_id)
-
-
Returns a list of access rule config given the group_id of the access rule.
### Example
@@ -128,7 +124,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.AccessRulesApi(api_client)
- access_rule_id = '1b978423-db0a-4037-a4cf-f79c60cb67b3' # str | The access rule ID (group ID) of the access rule.
+ access_rule_id = UUID('1b978423-db0a-4037-a4cf-f79c60cb67b3') # UUID | The access rule ID (group ID) of the access rule.
try:
api_response = api_instance.get_access_rule(access_rule_id)
@@ -145,7 +141,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **access_rule_id** | **str**| The access rule ID (group ID) of the access rule. |
+ **access_rule_id** | **UUID**| The access rule ID (group ID) of the access rule. |
### Return type
@@ -171,8 +167,6 @@ Name | Type | Description | Notes
# **update_access_rule**
> AccessRule update_access_rule(access_rule_id, update_access_rule_info)
-
-
Updates the access rule config for the given group_id.
### Example
@@ -208,7 +202,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.AccessRulesApi(api_client)
- access_rule_id = '1b978423-db0a-4037-a4cf-f79c60cb67b3' # str | The access rule ID (group ID) of the access rule.
+ access_rule_id = UUID('1b978423-db0a-4037-a4cf-f79c60cb67b3') # UUID | The access rule ID (group ID) of the access rule.
update_access_rule_info = opal_security.UpdateAccessRuleInfo() # UpdateAccessRuleInfo |
try:
@@ -226,7 +220,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **access_rule_id** | **str**| The access rule ID (group ID) of the access rule. |
+ **access_rule_id** | **UUID**| The access rule ID (group ID) of the access rule. |
**update_access_rule_info** | [**UpdateAccessRuleInfo**](UpdateAccessRuleInfo.md)| |
### Return type
diff --git a/docs/AddBundleGroupRequest.md b/docs/AddBundleGroupRequest.md
index 964cc21..baff33c 100644
--- a/docs/AddBundleGroupRequest.md
+++ b/docs/AddBundleGroupRequest.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**group_id** | **str** | The ID of the group to add. |
+**group_id** | **UUID** | The ID of the group to add. |
**access_level_remote_id** | **str** | The remote ID of the access level to grant to this user. Required if the group being added requires an access level. If omitted, the default access level remote ID value (empty string) is used. | [optional]
**access_level_name** | **str** | The name of the access level to grant to this user. If omitted, the default access level name value (empty string) is used. | [optional]
diff --git a/docs/AddBundleResourceRequest.md b/docs/AddBundleResourceRequest.md
index 1e9cc63..149614d 100644
--- a/docs/AddBundleResourceRequest.md
+++ b/docs/AddBundleResourceRequest.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**resource_id** | **str** | The ID of the resource to add. |
+**resource_id** | **UUID** | The ID of the resource to add. |
**access_level_remote_id** | **str** | The remote ID of the access level to grant to this user. Required if the resource being added requires an access level. If omitted, the default access level remote ID value (empty string) is used. | [optional]
**access_level_name** | **str** | The name of the access level to grant to this user. If omitted, the default access level name value (empty string) is used. | [optional]
diff --git a/docs/App.md b/docs/App.md
index ecf9c58..d430853 100644
--- a/docs/App.md
+++ b/docs/App.md
@@ -6,10 +6,10 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**app_id** | **str** | The ID of the app. |
+**app_id** | **UUID** | The ID of the app. |
**name** | **str** | The name of the app. |
**description** | **str** | A description of the app. |
-**admin_owner_id** | **str** | The ID of the owner of the app. |
+**admin_owner_id** | **UUID** | The ID of the owner of the app. |
**app_type** | [**AppTypeEnum**](AppTypeEnum.md) | |
**validations** | [**List[AppValidation]**](AppValidation.md) | Validation checks of an apps' configuration and permissions. | [optional]
diff --git a/docs/AppTypeEnum.md b/docs/AppTypeEnum.md
index dd94e93..39ddd28 100644
--- a/docs/AppTypeEnum.md
+++ b/docs/AppTypeEnum.md
@@ -6,14 +6,24 @@ The type of an app.
* `ACTIVE_DIRECTORY` (value: `'ACTIVE_DIRECTORY'`)
+* `ANTHROPIC` (value: `'ANTHROPIC'`)
+
* `AZURE_AD` (value: `'AZURE_AD'`)
* `AWS` (value: `'AWS'`)
* `AWS_SSO` (value: `'AWS_SSO'`)
+* `COUPA` (value: `'COUPA'`)
+
+* `CURSOR` (value: `'CURSOR'`)
+
* `CUSTOM` (value: `'CUSTOM'`)
+* `DATABRICKS` (value: `'DATABRICKS'`)
+
+* `DATASTAX_ASTRA` (value: `'DATASTAX_ASTRA'`)
+
* `DUO` (value: `'DUO'`)
* `GCP` (value: `'GCP'`)
@@ -26,6 +36,10 @@ The type of an app.
* `GOOGLE_WORKSPACE` (value: `'GOOGLE_WORKSPACE'`)
+* `ILEVEL` (value: `'ILEVEL'`)
+
+* `INCIDENTIO` (value: `'INCIDENTIO'`)
+
* `LDAP` (value: `'LDAP'`)
* `MARIADB` (value: `'MARIADB'`)
@@ -38,12 +52,16 @@ The type of an app.
* `OKTA_DIRECTORY` (value: `'OKTA_DIRECTORY'`)
+* `OPENAI_PLATFORM` (value: `'OPENAI_PLATFORM'`)
+
* `OPAL` (value: `'OPAL'`)
* `PAGERDUTY` (value: `'PAGERDUTY'`)
* `SALESFORCE` (value: `'SALESFORCE'`)
+* `SNOWFLAKE` (value: `'SNOWFLAKE'`)
+
* `TAILSCALE` (value: `'TAILSCALE'`)
* `TELEPORT` (value: `'TELEPORT'`)
diff --git a/docs/AppsApi.md b/docs/AppsApi.md
index 571c9d5..c431723 100644
--- a/docs/AppsApi.md
+++ b/docs/AppsApi.md
@@ -48,7 +48,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.AppsApi(api_client)
- app_id = '32acc112-21ff-4669-91c2-21e27683eaa1' # str | The ID of the app.
+ app_id = UUID('32acc112-21ff-4669-91c2-21e27683eaa1') # UUID | The ID of the app.
try:
# Get app by ID
@@ -66,7 +66,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **app_id** | **str**| The ID of the app. |
+ **app_id** | **UUID**| The ID of the app. |
### Return type
@@ -130,7 +130,7 @@ with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.AppsApi(api_client)
app_type_filter = [opal_security.AppTypeEnum()] # List[AppTypeEnum] | A list of app types to filter by. (optional)
- owner_filter = '29827fb8-f2dd-4e80-9576-28e31e9934ac' # str | An owner ID to filter by. (optional)
+ owner_filter = UUID('29827fb8-f2dd-4e80-9576-28e31e9934ac') # UUID | An owner ID to filter by. (optional)
try:
# Get apps
@@ -149,7 +149,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**app_type_filter** | [**List[AppTypeEnum]**](AppTypeEnum.md)| A list of app types to filter by. | [optional]
- **owner_filter** | **str**| An owner ID to filter by. | [optional]
+ **owner_filter** | **UUID**| An owner ID to filter by. | [optional]
### Return type
@@ -175,8 +175,6 @@ Name | Type | Description | Notes
# **get_sync_errors**
> List[SyncErrorList] get_sync_errors(app_id=app_id, resource_id=resource_id, group_id=group_id)
-
-
Returns a list of recent sync errors that have occurred since the last successful sync.
### Example
@@ -211,9 +209,9 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.AppsApi(api_client)
- app_id = '29827fb8-f2dd-4e80-9576-28e31e9934ac' # str | The ID of the app to list sync errors for. (optional)
- resource_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the resource to list sync errors for. (optional)
- group_id = '9546209c-42c2-4801-96d7-9ec42df0f59c' # str | The ID of the group to list sync errors for. (optional)
+ app_id = UUID('29827fb8-f2dd-4e80-9576-28e31e9934ac') # UUID | The ID of the app to list sync errors for. (optional)
+ resource_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the resource to list sync errors for. (optional)
+ group_id = UUID('9546209c-42c2-4801-96d7-9ec42df0f59c') # UUID | The ID of the group to list sync errors for. (optional)
try:
api_response = api_instance.get_sync_errors(app_id=app_id, resource_id=resource_id, group_id=group_id)
@@ -230,9 +228,9 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **app_id** | **str**| The ID of the app to list sync errors for. | [optional]
- **resource_id** | **str**| The ID of the resource to list sync errors for. | [optional]
- **group_id** | **str**| The ID of the group to list sync errors for. | [optional]
+ **app_id** | **UUID**| The ID of the app to list sync errors for. | [optional]
+ **resource_id** | **UUID**| The ID of the resource to list sync errors for. | [optional]
+ **group_id** | **UUID**| The ID of the group to list sync errors for. | [optional]
### Return type
diff --git a/docs/Bundle.md b/docs/Bundle.md
index 320cab4..d4e8920 100644
--- a/docs/Bundle.md
+++ b/docs/Bundle.md
@@ -5,12 +5,12 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**bundle_id** | **str** | The ID of the bundle. | [optional] [readonly]
+**bundle_id** | **UUID** | The ID of the bundle. | [optional] [readonly]
**name** | **str** | The name of the bundle. | [optional]
**description** | **str** | The description of the bundle. | [optional]
**created_at** | **datetime** | The creation timestamp of the bundle, in ISO 8601 format | [optional] [readonly]
**updated_at** | **datetime** | The last updated timestamp of the bundle, in ISO 8601 format | [optional] [readonly]
-**admin_owner_id** | **str** | The ID of the owner of the bundle. | [optional]
+**admin_owner_id** | **UUID** | The ID of the owner of the bundle. | [optional]
**total_num_items** | **int** | The total number of items in the bundle. | [optional] [readonly]
**total_num_resources** | **int** | The total number of resources in the bundle. | [optional] [readonly]
**total_num_groups** | **int** | The total number of groups in the bundle. | [optional] [readonly]
diff --git a/docs/BundleGroup.md b/docs/BundleGroup.md
index cfc76e8..bf3e350 100644
--- a/docs/BundleGroup.md
+++ b/docs/BundleGroup.md
@@ -5,8 +5,8 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**bundle_id** | **str** | The ID of the bundle containing the group. | [optional] [readonly]
-**group_id** | **str** | The ID of the group within a bundle. | [optional] [readonly]
+**bundle_id** | **UUID** | The ID of the bundle containing the group. | [optional] [readonly]
+**group_id** | **UUID** | The ID of the group within a bundle. | [optional] [readonly]
**access_level_name** | **str** | The access level of the group within a bundle. | [optional]
**access_level_remote_id** | **str** | The remote ID of the access level of the group within a bundle. | [optional]
diff --git a/docs/BundleResource.md b/docs/BundleResource.md
index 85b9285..522ff73 100644
--- a/docs/BundleResource.md
+++ b/docs/BundleResource.md
@@ -5,8 +5,8 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**bundle_id** | **str** | The ID of the bundle containing the resource. | [optional] [readonly]
-**resource_id** | **str** | The ID of the resource within a bundle. | [optional] [readonly]
+**bundle_id** | **UUID** | The ID of the bundle containing the resource. | [optional] [readonly]
+**resource_id** | **UUID** | The ID of the resource within a bundle. | [optional] [readonly]
**access_level_name** | **str** | The access level of the resource within a bundle. | [optional]
**access_level_remote_id** | **str** | The remote ID of the access level of the resource within a bundle. | [optional]
diff --git a/docs/BundlesApi.md b/docs/BundlesApi.md
index 1f56fb9..1afe0d3 100644
--- a/docs/BundlesApi.md
+++ b/docs/BundlesApi.md
@@ -22,8 +22,6 @@ Method | HTTP request | Description
# **add_bundle_group**
> BundleGroup add_bundle_group(bundle_id, add_bundle_group_request)
-
-
Adds a group to a bundle.
### Example
@@ -59,7 +57,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.BundlesApi(api_client)
- bundle_id = '32acc112-21ff-4669-91c2-21e27683eaa1' # str | The ID of the bundle.
+ bundle_id = UUID('32acc112-21ff-4669-91c2-21e27683eaa1') # UUID | The ID of the bundle.
add_bundle_group_request = opal_security.AddBundleGroupRequest() # AddBundleGroupRequest |
try:
@@ -77,7 +75,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **bundle_id** | **str**| The ID of the bundle. |
+ **bundle_id** | **UUID**| The ID of the bundle. |
**add_bundle_group_request** | [**AddBundleGroupRequest**](AddBundleGroupRequest.md)| |
### Return type
@@ -104,8 +102,6 @@ Name | Type | Description | Notes
# **add_bundle_resource**
> BundleResource add_bundle_resource(bundle_id, add_bundle_resource_request=add_bundle_resource_request)
-
-
Adds a resource to a bundle.
### Example
@@ -141,7 +137,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.BundlesApi(api_client)
- bundle_id = '32acc112-21ff-4669-91c2-21e27683eaa1' # str | The ID of the bundle.
+ bundle_id = UUID('32acc112-21ff-4669-91c2-21e27683eaa1') # UUID | The ID of the bundle.
add_bundle_resource_request = opal_security.AddBundleResourceRequest() # AddBundleResourceRequest | (optional)
try:
@@ -159,7 +155,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **bundle_id** | **str**| The ID of the bundle. |
+ **bundle_id** | **UUID**| The ID of the bundle. |
**add_bundle_resource_request** | [**AddBundleResourceRequest**](AddBundleResourceRequest.md)| | [optional]
### Return type
@@ -186,8 +182,6 @@ Name | Type | Description | Notes
# **create_bundle**
> Bundle create_bundle(create_bundle_info)
-
-
Creates a bundle.
### Example
@@ -266,8 +260,6 @@ Name | Type | Description | Notes
# **delete_bundle**
> delete_bundle(bundle_id)
-
-
Deletes a bundle.
### Example
@@ -301,7 +293,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.BundlesApi(api_client)
- bundle_id = '32acc112-21ff-4669-91c2-21e27683eaa1' # str | The ID of the bundle.
+ bundle_id = UUID('32acc112-21ff-4669-91c2-21e27683eaa1') # UUID | The ID of the bundle.
try:
api_instance.delete_bundle(bundle_id)
@@ -316,7 +308,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **bundle_id** | **str**| The ID of the bundle. |
+ **bundle_id** | **UUID**| The ID of the bundle. |
### Return type
@@ -378,7 +370,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.BundlesApi(api_client)
- bundle_id = '32acc112-21ff-4669-91c2-21e27683eaa1' # str | The ID of the bundle.
+ bundle_id = UUID('32acc112-21ff-4669-91c2-21e27683eaa1') # UUID | The ID of the bundle.
try:
# Get bundle by ID
@@ -396,7 +388,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **bundle_id** | **str**| The ID of the bundle. |
+ **bundle_id** | **UUID**| The ID of the bundle. |
### Return type
@@ -422,8 +414,6 @@ Name | Type | Description | Notes
# **get_bundle_groups**
> PaginatedBundleGroupList get_bundle_groups(bundle_id, page_size=page_size, cursor=cursor)
-
-
Returns a list of `Group` objects in a given bundle.
### Example
@@ -458,7 +448,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.BundlesApi(api_client)
- bundle_id = '32acc112-21ff-4669-91c2-21e27683eaa1' # str | The ID of the bundle.
+ bundle_id = UUID('32acc112-21ff-4669-91c2-21e27683eaa1') # UUID | The ID of the bundle.
page_size = 200 # int | The maximum number of groups to return from the beginning of the list. Default is 200, max is 1000. (optional)
cursor = 'cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw' # str | A cursor indicating where to start fetching items after a specific point. (optional)
@@ -477,7 +467,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **bundle_id** | **str**| The ID of the bundle. |
+ **bundle_id** | **UUID**| The ID of the bundle. |
**page_size** | **int**| The maximum number of groups to return from the beginning of the list. Default is 200, max is 1000. | [optional]
**cursor** | **str**| A cursor indicating where to start fetching items after a specific point. | [optional]
@@ -505,8 +495,6 @@ Name | Type | Description | Notes
# **get_bundle_resources**
> PaginatedBundleResourceList get_bundle_resources(bundle_id, page_size=page_size, cursor=cursor)
-
-
Returns a list of `Resource` objects in a given bundle.
### Example
@@ -541,7 +529,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.BundlesApi(api_client)
- bundle_id = '32acc112-21ff-4669-91c2-21e27683eaa1' # str | The ID of the bundle.
+ bundle_id = UUID('32acc112-21ff-4669-91c2-21e27683eaa1') # UUID | The ID of the bundle.
page_size = 200 # int | The maximum number of resources to return from the beginning of the list. Default is 200, max is 1000. (optional)
cursor = 'cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw' # str | A cursor indicating where to start fetching items after a specific point. (optional)
@@ -560,7 +548,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **bundle_id** | **str**| The ID of the bundle. |
+ **bundle_id** | **UUID**| The ID of the bundle. |
**page_size** | **int**| The maximum number of resources to return from the beginning of the list. Default is 200, max is 1000. | [optional]
**cursor** | **str**| A cursor indicating where to start fetching items after a specific point. | [optional]
@@ -588,8 +576,6 @@ Name | Type | Description | Notes
# **get_bundle_visibility**
> VisibilityInfo get_bundle_visibility(bundle_id)
-
-
Gets the visibility of the bundle.
### Example
@@ -624,7 +610,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.BundlesApi(api_client)
- bundle_id = '32acc112-21ff-4669-91c2-21e27683eaa1' # str | The ID of the bundle.
+ bundle_id = UUID('32acc112-21ff-4669-91c2-21e27683eaa1') # UUID | The ID of the bundle.
try:
api_response = api_instance.get_bundle_visibility(bundle_id)
@@ -641,7 +627,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **bundle_id** | **str**| The ID of the bundle. |
+ **bundle_id** | **UUID**| The ID of the bundle. |
### Return type
@@ -751,8 +737,6 @@ Name | Type | Description | Notes
# **remove_bundle_group**
> remove_bundle_group(bundle_id, group_id, access_level_remote_id=access_level_remote_id)
-
-
Removes a group from a bundle.
### Example
@@ -786,8 +770,8 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.BundlesApi(api_client)
- bundle_id = '32acc112-21ff-4669-91c2-21e27683eaa1' # str | The ID of the bundle.
- group_id = '72e75a6f-7183-48c5-94ff-6013f213314b' # str | The ID of the group to remove.
+ bundle_id = UUID('32acc112-21ff-4669-91c2-21e27683eaa1') # UUID | The ID of the bundle.
+ group_id = UUID('72e75a6f-7183-48c5-94ff-6013f213314b') # UUID | The ID of the group to remove.
access_level_remote_id = 'arn:aws:iam::590304332660:role/AdministratorAccess' # str | The remote ID of the access level to remove. (optional)
try:
@@ -803,8 +787,8 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **bundle_id** | **str**| The ID of the bundle. |
- **group_id** | **str**| The ID of the group to remove. |
+ **bundle_id** | **UUID**| The ID of the bundle. |
+ **group_id** | **UUID**| The ID of the group to remove. |
**access_level_remote_id** | **str**| The remote ID of the access level to remove. | [optional]
### Return type
@@ -831,8 +815,6 @@ void (empty response body)
# **remove_bundle_resource**
> remove_bundle_resource(bundle_id, resource_id, access_level_remote_id=access_level_remote_id)
-
-
Removes a resource from a bundle.
### Example
@@ -866,8 +848,8 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.BundlesApi(api_client)
- bundle_id = '32acc112-21ff-4669-91c2-21e27683eaa1' # str | The ID of the bundle.
- resource_id = '72e75a6f-7183-48c5-94ff-6013f213314b' # str | The ID of the resource to remove.
+ bundle_id = UUID('32acc112-21ff-4669-91c2-21e27683eaa1') # UUID | The ID of the bundle.
+ resource_id = UUID('72e75a6f-7183-48c5-94ff-6013f213314b') # UUID | The ID of the resource to remove.
access_level_remote_id = 'arn:aws:iam::590304332660:role/AdministratorAccess' # str | The remote ID of the access level to grant. If omitted, the default access level remote ID value (empty string) is used. (optional)
try:
@@ -883,8 +865,8 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **bundle_id** | **str**| The ID of the bundle. |
- **resource_id** | **str**| The ID of the resource to remove. |
+ **bundle_id** | **UUID**| The ID of the bundle. |
+ **resource_id** | **UUID**| The ID of the resource to remove. |
**access_level_remote_id** | **str**| The remote ID of the access level to grant. If omitted, the default access level remote ID value (empty string) is used. | [optional]
### Return type
@@ -911,8 +893,6 @@ void (empty response body)
# **set_bundle_visibility**
> set_bundle_visibility(bundle_id, visibility_info)
-
-
Sets the visibility of the bundle.
### Example
@@ -947,7 +927,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.BundlesApi(api_client)
- bundle_id = '32acc112-21ff-4669-91c2-21e27683eaa1' # str | The ID of the bundle.
+ bundle_id = UUID('32acc112-21ff-4669-91c2-21e27683eaa1') # UUID | The ID of the bundle.
visibility_info = opal_security.VisibilityInfo() # VisibilityInfo |
try:
@@ -963,7 +943,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **bundle_id** | **str**| The ID of the bundle. |
+ **bundle_id** | **UUID**| The ID of the bundle. |
**visibility_info** | [**VisibilityInfo**](VisibilityInfo.md)| |
### Return type
@@ -990,8 +970,6 @@ void (empty response body)
# **update_bundle**
> Bundle update_bundle(bundle_id, bundle)
-
-
Updates a bundle.
### Example
@@ -1026,7 +1004,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.BundlesApi(api_client)
- bundle_id = '32acc112-21ff-4669-91c2-21e27683eaa1' # str | The ID of the bundle to be updated.
+ bundle_id = UUID('32acc112-21ff-4669-91c2-21e27683eaa1') # UUID | The ID of the bundle to be updated.
bundle = opal_security.Bundle() # Bundle |
try:
@@ -1044,7 +1022,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **bundle_id** | **str**| The ID of the bundle to be updated. |
+ **bundle_id** | **UUID**| The ID of the bundle to be updated. |
**bundle** | [**Bundle**](Bundle.md)| |
### Return type
diff --git a/docs/Condition.md b/docs/Condition.md
index bf1d6ca..96cdedc 100644
--- a/docs/Condition.md
+++ b/docs/Condition.md
@@ -6,7 +6,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**group_ids** | **List[str]** | The list of group IDs to match. | [optional]
+**group_ids** | **List[UUID]** | The list of group IDs to match. | [optional]
**role_remote_ids** | **List[str]** | The list of role remote IDs to match. | [optional]
## Example
diff --git a/docs/ConfigurationTemplate.md b/docs/ConfigurationTemplate.md
index fd67c7f..749d708 100644
--- a/docs/ConfigurationTemplate.md
+++ b/docs/ConfigurationTemplate.md
@@ -6,14 +6,14 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**configuration_template_id** | **str** | The ID of the configuration template. | [optional]
+**configuration_template_id** | **UUID** | The ID of the configuration template. | [optional]
**name** | **str** | The name of the configuration template. | [optional]
-**admin_owner_id** | **str** | The ID of the owner of the configuration template. | [optional]
+**admin_owner_id** | **UUID** | The ID of the owner of the configuration template. | [optional]
**visibility** | [**VisibilityInfo**](VisibilityInfo.md) | The visibility info of the configuration template. | [optional]
-**linked_audit_message_channel_ids** | **List[str]** | The IDs of the audit message channels linked to the configuration template. | [optional]
-**request_configuration_id** | **str** | The ID of the request configuration linked to the configuration template. | [optional]
-**member_oncall_schedule_ids** | **List[str]** | The IDs of the on-call schedules linked to the configuration template. | [optional]
-**break_glass_user_ids** | **List[str]** | The IDs of the break glass users linked to the configuration template. | [optional]
+**linked_audit_message_channel_ids** | **List[UUID]** | The IDs of the audit message channels linked to the configuration template. | [optional]
+**request_configuration_id** | **UUID** | The ID of the request configuration linked to the configuration template. | [optional]
+**member_oncall_schedule_ids** | **List[UUID]** | The IDs of the on-call schedules linked to the configuration template. | [optional]
+**break_glass_user_ids** | **List[UUID]** | The IDs of the break glass users linked to the configuration template. | [optional]
**require_mfa_to_approve** | **bool** | A bool representing whether or not to require MFA for reviewers to approve requests for this configuration template. | [optional]
**require_mfa_to_connect** | **bool** | A bool representing whether or not to require MFA to connect to resources associated with this configuration template. | [optional]
**ticket_propagation** | [**TicketPropagationConfiguration**](TicketPropagationConfiguration.md) | | [optional]
diff --git a/docs/ConfigurationTemplatesApi.md b/docs/ConfigurationTemplatesApi.md
index c10b46f..0271618 100644
--- a/docs/ConfigurationTemplatesApi.md
+++ b/docs/ConfigurationTemplatesApi.md
@@ -13,8 +13,6 @@ Method | HTTP request | Description
# **create_configuration_template**
> ConfigurationTemplate create_configuration_template(create_configuration_template_info)
-
-
Creates a configuration template.
### Example
@@ -93,8 +91,6 @@ Name | Type | Description | Notes
# **delete_configuration_template**
> delete_configuration_template(configuration_template_id)
-
-
Deletes a configuration template.
### Example
@@ -128,7 +124,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.ConfigurationTemplatesApi(api_client)
- configuration_template_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the configuration template.
+ configuration_template_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the configuration template.
try:
api_instance.delete_configuration_template(configuration_template_id)
@@ -143,7 +139,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **configuration_template_id** | **str**| The ID of the configuration template. |
+ **configuration_template_id** | **UUID**| The ID of the configuration template. |
### Return type
@@ -169,8 +165,6 @@ void (empty response body)
# **get_configuration_templates**
> PaginatedConfigurationTemplateList get_configuration_templates()
-
-
Returns a list of `ConfigurationTemplate` objects.
### Example
@@ -244,8 +238,6 @@ This endpoint does not need any parameter.
# **update_configuration_template**
> ConfigurationTemplate update_configuration_template(update_configuration_template_info)
-
-
Update a configuration template.
### Example
diff --git a/docs/CreateConfigurationTemplateInfo.md b/docs/CreateConfigurationTemplateInfo.md
index f4ecc26..b041f65 100644
--- a/docs/CreateConfigurationTemplateInfo.md
+++ b/docs/CreateConfigurationTemplateInfo.md
@@ -6,11 +6,11 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**admin_owner_id** | **str** | The ID of the owner of the configuration template. |
+**admin_owner_id** | **UUID** | The ID of the owner of the configuration template. |
**visibility** | [**VisibilityInfo**](VisibilityInfo.md) | The visibility info of the configuration template. |
-**linked_audit_message_channel_ids** | **List[str]** | The IDs of the audit message channels linked to the configuration template. | [optional]
-**member_oncall_schedule_ids** | **List[str]** | The IDs of the on-call schedules linked to the configuration template. | [optional]
-**break_glass_user_ids** | **List[str]** | The IDs of the break glass users linked to the configuration template. | [optional]
+**linked_audit_message_channel_ids** | **List[UUID]** | The IDs of the audit message channels linked to the configuration template. | [optional]
+**member_oncall_schedule_ids** | **List[UUID]** | The IDs of the on-call schedules linked to the configuration template. | [optional]
+**break_glass_user_ids** | **List[UUID]** | The IDs of the break glass users linked to the configuration template. | [optional]
**require_mfa_to_approve** | **bool** | A bool representing whether or not to require MFA for reviewers to approve requests for this configuration template. |
**require_mfa_to_connect** | **bool** | A bool representing whether or not to require MFA to connect to resources associated with this configuration template. |
**name** | **str** | The name of the configuration template. |
diff --git a/docs/CreateDelegationRequest.md b/docs/CreateDelegationRequest.md
index 8ef0955..1bc3e1e 100644
--- a/docs/CreateDelegationRequest.md
+++ b/docs/CreateDelegationRequest.md
@@ -6,8 +6,8 @@ Request body for creating a new delegation of access review requests from one us
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**delegator_user_id** | **str** | The ID of the user delegating their access review requests. |
-**delegate_user_id** | **str** | The ID of the user being delegated to. |
+**delegator_user_id** | **UUID** | The ID of the user delegating their access review requests. |
+**delegate_user_id** | **UUID** | The ID of the user being delegated to. |
**start_time** | **datetime** | The start time of the delegation. |
**end_time** | **datetime** | The end time of the delegation. |
**reason** | **str** | The reason for the delegation. |
diff --git a/docs/CreateGroupBindingInfo.md b/docs/CreateGroupBindingInfo.md
index 638b6ef..432ea8f 100644
--- a/docs/CreateGroupBindingInfo.md
+++ b/docs/CreateGroupBindingInfo.md
@@ -6,7 +6,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**source_group_id** | **str** | The ID of the source group. |
+**source_group_id** | **UUID** | The ID of the source group. |
**groups** | [**List[CreateGroupBindingInfoGroupsInner]**](CreateGroupBindingInfoGroupsInner.md) | The list of groups. |
## Example
diff --git a/docs/CreateGroupBindingInfoGroupsInner.md b/docs/CreateGroupBindingInfoGroupsInner.md
index 7b42c06..75d80db 100644
--- a/docs/CreateGroupBindingInfoGroupsInner.md
+++ b/docs/CreateGroupBindingInfoGroupsInner.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**group_id** | **str** | The ID of the group. |
+**group_id** | **UUID** | The ID of the group. |
## Example
diff --git a/docs/CreateGroupInfo.md b/docs/CreateGroupInfo.md
index 178f8e8..28c71d7 100644
--- a/docs/CreateGroupInfo.md
+++ b/docs/CreateGroupInfo.md
@@ -9,7 +9,7 @@ Name | Type | Description | Notes
**name** | **str** | The name of the remote group. |
**description** | **str** | A description of the remote group. | [optional]
**group_type** | [**GroupTypeEnum**](GroupTypeEnum.md) | |
-**app_id** | **str** | The ID of the app for the group. |
+**app_id** | **UUID** | The ID of the app for the group. |
**remote_info** | [**GroupRemoteInfo**](GroupRemoteInfo.md) | | [optional]
**remote_group_id** | **str** | Deprecated - use remote_info instead. The ID of the group on the remote system. Include only for items linked to remote systems. See [this guide](https://docs.opal.dev/reference/end-system-objects) for details on how to specify this field. | [optional]
**metadata** | **str** | Deprecated - use remote_info instead. JSON metadata about the remote group. Include only for items linked to remote systems. See [this guide](https://docs.opal.dev/reference/end-system-objects) for details on how to specify this field. The required format is dependent on group_type and should have the following schema: <style type=\"text/css\"> code {max-height:300px !important} </style> ```json { \"$schema\": \"http://json-schema.org/draft-04/schema#\", \"title\": \"Group Metadata\", \"properties\": { \"ad_group\": { \"properties\": { \"object_guid\": { \"type\": \"string\" } }, \"required\": [\"object_guid\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"Active Directory Group\" }, \"duo_group\": { \"properties\": { \"group_id\": { \"type\": \"string\" } }, \"required\": [\"group_id\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"Duo Group\" }, \"git_hub_team\": { \"properties\": { \"org_name\": { \"type\": \"string\" }, \"team_slug\": { \"type\": \"string\" } }, \"required\": [\"org_name\", \"team_slug\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"GitHub Team\" }, \"google_groups_group\": { \"properties\": { \"group_id\": { \"type\": \"string\" } }, \"required\": [\"group_id\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"Google Groups Group\" }, \"ldap_group\": { \"properties\": { \"group_uid\": { \"type\": \"string\" } }, \"required\": [\"group_uid\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"LDAP Group\" }, \"okta_directory_group\": { \"properties\": { \"group_id\": { \"type\": \"string\" } }, \"required\": [\"group_id\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"Okta Directory Group\" } }, \"additionalProperties\": false, \"minProperties\": 1, \"maxProperties\": 1, \"type\": \"object\" } ``` | [optional]
diff --git a/docs/CreateOwnerInfo.md b/docs/CreateOwnerInfo.md
index f93de7b..7faa6e9 100644
--- a/docs/CreateOwnerInfo.md
+++ b/docs/CreateOwnerInfo.md
@@ -9,9 +9,9 @@ Name | Type | Description | Notes
**name** | **str** | The name of the owner. |
**description** | **str** | A description of the owner. | [optional]
**access_request_escalation_period** | **int** | The amount of time (in minutes) before the next reviewer is notified. Use 0 to remove escalation policy. | [optional]
-**user_ids** | **List[str]** | Users to add to the created owner. If setting a source_group_id this list must be empty. |
+**user_ids** | **List[UUID]** | Users to add to the created owner. If setting a source_group_id this list must be empty. |
**reviewer_message_channel_id** | **str** | The message channel id for the reviewer channel. | [optional]
-**source_group_id** | **str** | Sync this owner's user list with a source group. | [optional]
+**source_group_id** | **UUID** | Sync this owner's user list with a source group. | [optional]
## Example
diff --git a/docs/CreateRequest200Response.md b/docs/CreateRequest200Response.md
index d6b8473..2148f3e 100644
--- a/docs/CreateRequest200Response.md
+++ b/docs/CreateRequest200Response.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**id** | **str** | | [optional]
+**id** | **UUID** | | [optional]
## Example
diff --git a/docs/CreateRequestInfo.md b/docs/CreateRequestInfo.md
index 94cccb3..013a85a 100644
--- a/docs/CreateRequestInfo.md
+++ b/docs/CreateRequestInfo.md
@@ -8,8 +8,8 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**resources** | [**List[CreateRequestInfoResourcesInner]**](CreateRequestInfoResourcesInner.md) | |
**groups** | [**List[CreateRequestInfoGroupsInner]**](CreateRequestInfoGroupsInner.md) | |
-**target_user_id** | **str** | The ID of the user to be granted access. Should not be specified if target_group_id is specified. | [optional]
-**target_group_id** | **str** | The ID of the group the request is for. Should not be specified if target_user_id is specified. | [optional]
+**target_user_id** | **UUID** | The ID of the user to be granted access. Should not be specified if target_group_id is specified. | [optional]
+**target_group_id** | **UUID** | The ID of the group the request is for. Should not be specified if target_user_id is specified. | [optional]
**reason** | **str** | |
**support_ticket** | [**CreateRequestInfoSupportTicket**](CreateRequestInfoSupportTicket.md) | | [optional]
**duration_minutes** | **int** | The duration of the request in minutes. -1 represents an indefinite duration |
diff --git a/docs/CreateRequestInfoGroupsInner.md b/docs/CreateRequestInfoGroupsInner.md
index 45f80bb..26c34be 100644
--- a/docs/CreateRequestInfoGroupsInner.md
+++ b/docs/CreateRequestInfoGroupsInner.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**id** | **str** | The ID of the group requested. Should not be specified if resource_id is specified. |
+**id** | **UUID** | The ID of the group requested. Should not be specified if resource_id is specified. |
**access_level_remote_id** | **str** | The ID of the access level requested on the remote system. | [optional]
**access_level_name** | **str** | The ID of the access level requested on the remote system. | [optional]
diff --git a/docs/CreateRequestInfoResourcesInner.md b/docs/CreateRequestInfoResourcesInner.md
index 045184d..e862d8e 100644
--- a/docs/CreateRequestInfoResourcesInner.md
+++ b/docs/CreateRequestInfoResourcesInner.md
@@ -5,9 +5,9 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**id** | **str** | The ID of the resource requested. Should not be specified if group_id is specified. | [optional]
+**id** | **UUID** | The ID of the resource requested. Should not be specified if group_id is specified. | [optional]
**access_level_remote_id** | **str** | The ID of the access level requested on the remote system. | [optional]
-**access_level_name** | **str** | The ID of the access level requested on the remote system. | [optional]
+**access_level_name** | **str** | The ID of the access level requested on the remote system. This field is deprecated and no longer required. We will populate based on the access_level_remote_id. | [optional]
## Example
diff --git a/docs/CreateResourceInfo.md b/docs/CreateResourceInfo.md
index 546ca08..6d0e662 100644
--- a/docs/CreateResourceInfo.md
+++ b/docs/CreateResourceInfo.md
@@ -9,7 +9,7 @@ Name | Type | Description | Notes
**name** | **str** | The name of the remote resource. |
**description** | **str** | A description of the remote resource. | [optional]
**resource_type** | [**ResourceTypeEnum**](ResourceTypeEnum.md) | |
-**app_id** | **str** | The ID of the app for the resource. |
+**app_id** | **UUID** | The ID of the app for the resource. |
**remote_info** | [**ResourceRemoteInfo**](ResourceRemoteInfo.md) | | [optional]
**remote_resource_id** | **str** | Deprecated - use remote_info instead. The ID of the resource on the remote system. Include only for items linked to remote systems. See [this guide](https://docs.opal.dev/reference/end-system-objects) for details on how to specify this field. | [optional]
**metadata** | **str** | Deprecated - use remote_info instead. JSON metadata about the remote resource. Include only for items linked to remote systems. See [this guide](https://docs.opal.dev/reference/end-system-objects) for details on how to specify this field. The required format is dependent on resource_type and should have the following schema: <style type=\"text/css\"> code {max-height:300px !important} </style> ```json { \"$schema\": \"http://json-schema.org/draft-04/schema#\", \"title\": \"Resource Metadata\", \"properties\": { \"aws_ec2_instance\": { \"properties\": { \"instance_id\": { \"type\": \"string\" }, \"region\": { \"type\": \"string\" } }, \"required\": [\"instance_id\", \"region\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"AWS EC2 Instance\" }, \"aws_eks_cluster\": { \"properties\": { \"cluster_name\": { \"type\": \"string\" }, \"cluster_region\": { \"type\": \"string\" }, \"cluster_arn\": { \"type\": \"string\" } }, \"required\": [\"cluster_name\", \"cluster_region\", \"cluster_arn\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"AWS EKS Cluster\" }, \"aws_rds_instance\": { \"properties\": { \"instance_id\": { \"type\": \"string\" }, \"engine\": { \"type\": \"string\" }, \"region\": { \"type\": \"string\" }, \"resource_id\": { \"type\": \"string\" }, \"database_name\": { \"type\": \"string\" } }, \"required\": [ \"instance_id\", \"engine\", \"region\", \"resource_id\", \"database_name\" ], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"AWS RDS Instance\" }, \"aws_role\": { \"properties\": { \"arn\": { \"type\": \"string\" }, \"name\": { \"type\": \"string\" } }, \"required\": [\"arn\", \"name\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"AWS Role\" }, \"gcp_bucket\": { \"properties\": { \"bucket_id\": { \"type\": \"string\" } }, \"required\": [\"bucket_id\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"GCP Bucket\" }, \"gcp_compute_instance\": { \"properties\": { \"instance_id\": { \"type\": \"string\" }, \"project_id\": { \"type\": \"string\" }, \"zone\": { \"type\": \"string\" } }, \"required\": [\"instance_id\", \"project_id\", \"zone\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"GCP Compute Instance\" }, \"gcp_folder\": { \"properties\": { \"folder_id\": { \"type\": \"string\" } }, \"required\": [\"folder_id\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"GCP Folder\" }, \"gcp_gke_cluster\": { \"properties\": { \"cluster_name\": { \"type\": \"string\" } }, \"required\": [\"cluster_name\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"GCP GKE Cluster\" }, \"gcp_project\": { \"properties\": { \"project_id\": { \"type\": \"string\" } }, \"required\": [\"project_id\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"GCP Project\" }, \"gcp_sql_instance\": { \"properties\": { \"instance_id\": { \"type\": \"string\" }, \"project_id\": { \"type\": \"string\" } }, \"required\": [\"instance_id\", \"project_id\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"GCP SQL Instance\" }, \"git_hub_repo\": { \"properties\": { \"org_name\": { \"type\": \"string\" }, \"repo_name\": { \"type\": \"string\" } }, \"required\": [\"org_name\", \"repo_name\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"GitHub Repo\" }, \"okta_directory_app\": { \"properties\": { \"app_id\": { \"type\": \"string\" }, \"logo_url\": { \"type\": \"string\" } }, \"required\": [\"app_id\", \"logo_url\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"Okta Directory App\" }, \"okta_directory_role\": { \"properties\": { \"role_type\": { \"type\": \"string\" }, \"role_id\": { \"type\": \"string\" } }, \"required\": [\"role_type\", \"role_id\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"Okta Directory Role\" }, \"salesforce_profile\": { \"properties\": { \"user_license\": { \"type\": \"string\" } }, \"required\": [\"user_license\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"Salesforce Profile\" } }, \"additionalProperties\": false, \"minProperties\": 1, \"maxProperties\": 1, \"type\": \"object\" } ``` | [optional]
diff --git a/docs/CreateUARInfo.md b/docs/CreateUARInfo.md
index 30f1fff..40d9ce1 100644
--- a/docs/CreateUARInfo.md
+++ b/docs/CreateUARInfo.md
@@ -12,6 +12,7 @@ Name | Type | Description | Notes
**deadline** | **datetime** | The last day for reviewers to complete their access reviews. |
**time_zone** | **str** | The time zone name (as defined by the IANA Time Zone database) used in the access review deadline and exported audit report. Default is America/Los_Angeles. |
**self_review_allowed** | **bool** | A bool representing whether to present a warning when a user is the only reviewer for themself. Default is False. |
+**instantly_action_reviews** | **bool** | A bool representing whether to instantly action changes when reviewers submit their decision. Default is False. | [optional]
**reminder_schedule** | **List[int]** | | [optional]
**reminder_include_manager** | **bool** | | [optional]
**uar_scope** | [**UARScope**](UARScope.md) | | [optional]
diff --git a/docs/Delegation.md b/docs/Delegation.md
index 6e186b6..2a9f50e 100644
--- a/docs/Delegation.md
+++ b/docs/Delegation.md
@@ -6,9 +6,9 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**id** | **str** | The ID of the delegation. |
-**delegator_user_id** | **str** | The ID of the user delegating their access review requests. |
-**delegate_user_id** | **str** | The ID of the user being delegated to. |
+**id** | **UUID** | The ID of the delegation. |
+**delegator_user_id** | **UUID** | The ID of the user delegating their access review requests. |
+**delegate_user_id** | **UUID** | The ID of the user being delegated to. |
**start_time** | **datetime** | The start time of the delegation. |
**end_time** | **datetime** | The end time of the delegation. |
**reason** | **str** | The reason for the delegation. |
diff --git a/docs/DelegationsApi.md b/docs/DelegationsApi.md
index 4754605..0c5259e 100644
--- a/docs/DelegationsApi.md
+++ b/docs/DelegationsApi.md
@@ -13,8 +13,6 @@ Method | HTTP request | Description
# **create_delegation**
> Delegation create_delegation(create_delegation_request)
-
-
Creates a new request reviewer delegation to delegate access review requests from one user to another.
### Example
@@ -93,8 +91,6 @@ Name | Type | Description | Notes
# **delete_delegation**
> delete_delegation(delegation_id)
-
-
Deletes a delegation by its ID.
### Example
@@ -128,7 +124,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.DelegationsApi(api_client)
- delegation_id = '32acc112-21ff-4669-91c2-21e27683eaa1' # str | The ID of the delegation to remove.
+ delegation_id = UUID('32acc112-21ff-4669-91c2-21e27683eaa1') # UUID | The ID of the delegation to remove.
try:
api_instance.delete_delegation(delegation_id)
@@ -143,7 +139,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **delegation_id** | **str**| The ID of the delegation to remove. |
+ **delegation_id** | **UUID**| The ID of the delegation to remove. |
### Return type
@@ -205,7 +201,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.DelegationsApi(api_client)
- delegation_id = '32acc112-21ff-4669-91c2-21e27683eaa1' # str | The ID of the delegation to retrieve.
+ delegation_id = UUID('32acc112-21ff-4669-91c2-21e27683eaa1') # UUID | The ID of the delegation to retrieve.
try:
# Get delegation by ID
@@ -223,7 +219,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **delegation_id** | **str**| The ID of the delegation to retrieve. |
+ **delegation_id** | **UUID**| The ID of the delegation to retrieve. |
### Return type
@@ -285,8 +281,8 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.DelegationsApi(api_client)
- delegator_user_id = '29827fb8-f2dd-4e80-9576-28e31e9934ac' # str | The delegator user ID to filter delegations by the user delegating their access review requests. (optional)
- delegate_user_id = '29827fb8-f2dd-4e80-9576-28e31e9934ac' # str | The delegate user ID to filter delegations by the user being delegated to. (optional)
+ delegator_user_id = UUID('29827fb8-f2dd-4e80-9576-28e31e9934ac') # UUID | The delegator user ID to filter delegations by the user delegating their access review requests. (optional)
+ delegate_user_id = UUID('29827fb8-f2dd-4e80-9576-28e31e9934ac') # UUID | The delegate user ID to filter delegations by the user being delegated to. (optional)
cursor = 'cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw' # str | A cursor to indicate where to start fetching results. (optional)
page_size = 200 # int | The maximum number of results to return per page. The default is 200. (optional)
@@ -306,8 +302,8 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **delegator_user_id** | **str**| The delegator user ID to filter delegations by the user delegating their access review requests. | [optional]
- **delegate_user_id** | **str**| The delegate user ID to filter delegations by the user being delegated to. | [optional]
+ **delegator_user_id** | **UUID**| The delegator user ID to filter delegations by the user delegating their access review requests. | [optional]
+ **delegate_user_id** | **UUID**| The delegate user ID to filter delegations by the user being delegated to. | [optional]
**cursor** | **str**| A cursor to indicate where to start fetching results. | [optional]
**page_size** | **int**| The maximum number of results to return per page. The default is 200. | [optional]
diff --git a/docs/Event.md b/docs/Event.md
index d1b9b9c..8ff4cc1 100644
--- a/docs/Event.md
+++ b/docs/Event.md
@@ -6,8 +6,8 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**event_id** | **str** | The ID of the event. |
-**actor_user_id** | **str** | The ID of the actor user. |
+**event_id** | **UUID** | The ID of the event. |
+**actor_user_id** | **UUID** | The ID of the actor user. |
**actor_name** | **object** | |
**actor_email** | **str** | The email of the actor user. | [optional]
**event_type** | **str** | The event type. |
diff --git a/docs/EventsApi.md b/docs/EventsApi.md
index 583435e..d71cefc 100644
--- a/docs/EventsApi.md
+++ b/docs/EventsApi.md
@@ -10,8 +10,6 @@ Method | HTTP request | Description
# **events**
> PaginatedEventList 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, api_token_filter=api_token_filter, cursor=cursor, page_size=page_size)
-
-
Returns a list of `Event` objects.
### Example
@@ -48,8 +46,8 @@ with opal_security.ApiClient(configuration) as api_client:
api_instance = opal_security.EventsApi(api_client)
start_date_filter = '2021-11-01' # str | A start date filter for the events. (optional)
end_date_filter = '2021-11-12' # str | An end date filter for the events. (optional)
- actor_filter = '29827fb8-f2dd-4e80-9576-28e31e9934ac' # str | An actor filter for the events. Supply the ID of the actor. (optional)
- object_filter = '29827fb8-f2dd-4e80-9576-28e31e9934ac' # str | An object filter for the events. Supply the ID of the object. (optional)
+ actor_filter = UUID('29827fb8-f2dd-4e80-9576-28e31e9934ac') # UUID | An actor filter for the events. Supply the ID of the actor. (optional)
+ object_filter = UUID('29827fb8-f2dd-4e80-9576-28e31e9934ac') # UUID | An object filter for the events. Supply the ID of the object. (optional)
event_type_filter = 'USER_MFA_RESET' # str | An event type filter for the events. (optional)
api_token_filter = 'fullaccess:**************************M_g==' # str | An API filter for the events. Supply the name and preview of the API token. (optional)
cursor = 'cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw' # str | The pagination cursor value. (optional)
@@ -72,8 +70,8 @@ Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**start_date_filter** | **str**| A start date filter for the events. | [optional]
**end_date_filter** | **str**| An end date filter for the events. | [optional]
- **actor_filter** | **str**| An actor filter for the events. Supply the ID of the actor. | [optional]
- **object_filter** | **str**| An object filter for the events. Supply the ID of the object. | [optional]
+ **actor_filter** | **UUID**| An actor filter for the events. Supply the ID of the actor. | [optional]
+ **object_filter** | **UUID**| An object filter for the events. Supply the ID of the object. | [optional]
**event_type_filter** | **str**| An event type filter for the events. | [optional]
**api_token_filter** | **str**| An API filter for the events. Supply the name and preview of the API token. | [optional]
**cursor** | **str**| The pagination cursor value. | [optional]
diff --git a/docs/Group.md b/docs/Group.md
index 17ae2d2..45928d5 100644
--- a/docs/Group.md
+++ b/docs/Group.md
@@ -6,12 +6,12 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**group_id** | **str** | The ID of the group. |
-**app_id** | **str** | The ID of the group's app. | [optional]
+**group_id** | **UUID** | The ID of the group. |
+**app_id** | **UUID** | The ID of the group's app. | [optional]
**name** | **str** | The name of the group. | [optional]
**description** | **str** | A description of the group. | [optional]
-**admin_owner_id** | **str** | The ID of the owner of the group. | [optional]
-**group_leader_user_ids** | **List[str]** | A list of User IDs for the group leaders of the group | [optional]
+**admin_owner_id** | **UUID** | The ID of the owner of the group. | [optional]
+**group_leader_user_ids** | **List[UUID]** | A list of User IDs for the group leaders of the group | [optional]
**remote_id** | **str** | The ID of the remote. | [optional]
**remote_name** | **str** | The name of the remote. | [optional]
**group_type** | [**GroupTypeEnum**](GroupTypeEnum.md) | | [optional]
@@ -23,9 +23,9 @@ Name | Type | Description | Notes
**require_mfa_to_approve** | **bool** | A bool representing whether or not to require MFA for reviewers to approve requests for this group. | [optional]
**require_mfa_to_request** | **bool** | A bool representing whether or not to require MFA for requesting access to this group. | [optional]
**auto_approval** | **bool** | A bool representing whether or not to automatically approve requests to this group. | [optional]
-**request_template_id** | **str** | The ID of the associated request template. | [optional]
-**configuration_template_id** | **str** | The ID of the associated configuration template. | [optional]
-**group_binding_id** | **str** | The ID of the associated group binding. | [optional]
+**request_template_id** | **UUID** | The ID of the associated request template. | [optional]
+**configuration_template_id** | **UUID** | The ID of the associated configuration template. | [optional]
+**group_binding_id** | **UUID** | The ID of the associated group binding. | [optional]
**is_requestable** | **bool** | A bool representing whether or not to allow access requests to this group. | [optional]
**request_configurations** | [**List[RequestConfiguration]**](RequestConfiguration.md) | A list of request configurations for this group. | [optional]
**request_configuration_list** | [**List[RequestConfiguration]**](RequestConfiguration.md) | A list of request configurations for this group. Deprecated in favor of `request_configurations`. | [optional]
diff --git a/docs/GroupBinding.md b/docs/GroupBinding.md
index 3268905..d695775 100644
--- a/docs/GroupBinding.md
+++ b/docs/GroupBinding.md
@@ -6,10 +6,10 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**group_binding_id** | **str** | The ID of the group binding. |
-**created_by_id** | **str** | The ID of the user that created the group binding. |
+**group_binding_id** | **UUID** | The ID of the group binding. |
+**created_by_id** | **UUID** | The ID of the user that created the group binding. |
**created_at** | **datetime** | The date the group binding was created. |
-**source_group_id** | **str** | The ID of the source group. |
+**source_group_id** | **UUID** | The ID of the source group. |
**groups** | [**List[GroupBindingGroup]**](GroupBindingGroup.md) | The list of groups. |
## Example
diff --git a/docs/GroupBindingGroup.md b/docs/GroupBindingGroup.md
index 28817a8..115af3f 100644
--- a/docs/GroupBindingGroup.md
+++ b/docs/GroupBindingGroup.md
@@ -6,7 +6,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**group_id** | **str** | The ID of the group. |
+**group_id** | **UUID** | The ID of the group. |
**group_type** | [**GroupTypeEnum**](GroupTypeEnum.md) | |
## Example
diff --git a/docs/GroupBindingsApi.md b/docs/GroupBindingsApi.md
index 0c72847..12166a9 100644
--- a/docs/GroupBindingsApi.md
+++ b/docs/GroupBindingsApi.md
@@ -14,8 +14,6 @@ Method | HTTP request | Description
# **create_group_binding**
> GroupBinding create_group_binding(create_group_binding_info)
-
-
Creates a group binding.
### Example
@@ -94,8 +92,6 @@ Name | Type | Description | Notes
# **delete_group_binding**
> delete_group_binding(group_binding_id)
-
-
Deletes a group binding.
### Example
@@ -129,7 +125,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.GroupBindingsApi(api_client)
- group_binding_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the group binding.
+ group_binding_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the group binding.
try:
api_instance.delete_group_binding(group_binding_id)
@@ -144,7 +140,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **group_binding_id** | **str**| The ID of the group binding. |
+ **group_binding_id** | **UUID**| The ID of the group binding. |
### Return type
@@ -206,7 +202,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.GroupBindingsApi(api_client)
- group_binding_id = '32acc112-21ff-4669-91c2-21e27683eaa1' # str | The ID of the group binding.
+ group_binding_id = UUID('32acc112-21ff-4669-91c2-21e27683eaa1') # UUID | The ID of the group binding.
try:
# Get group binding by ID
@@ -224,7 +220,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **group_binding_id** | **str**| The ID of the group binding. |
+ **group_binding_id** | **UUID**| The ID of the group binding. |
### Return type
@@ -332,8 +328,6 @@ Name | Type | Description | Notes
# **update_group_bindings**
> update_group_bindings(update_group_binding_info_list)
-
-
Bulk updates a list of group bindings.
### Example
diff --git a/docs/GroupContainingGroup.md b/docs/GroupContainingGroup.md
index def7a2e..ed7139c 100644
--- a/docs/GroupContainingGroup.md
+++ b/docs/GroupContainingGroup.md
@@ -6,7 +6,9 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**containing_group_id** | **str** | The groupID of the containing group. |
+**containing_group_id** | **UUID** | The groupID of the containing group. |
+**duration_minutes** | **int** | The updated duration for which the group can be accessed (in minutes). Use 0 for indefinite. | [optional]
+**access_level_remote_id** | **str** | The updated remote ID of the access level granted to this group. | [optional]
## Example
diff --git a/docs/GroupRemoteInfo.md b/docs/GroupRemoteInfo.md
index 04e4070..7d89d3b 100644
--- a/docs/GroupRemoteInfo.md
+++ b/docs/GroupRemoteInfo.md
@@ -7,6 +7,10 @@ Information that defines the remote group. This replaces the deprecated remote_i
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**active_directory_group** | [**GroupRemoteInfoActiveDirectoryGroup**](GroupRemoteInfoActiveDirectoryGroup.md) | | [optional]
+**tailscale_group** | [**GroupRemoteInfoTailscaleGroup**](GroupRemoteInfoTailscaleGroup.md) | | [optional]
+**aws_sso_group** | [**GroupRemoteInfoAwsSsoGroup**](GroupRemoteInfoAwsSsoGroup.md) | | [optional]
+**databricks_account_group** | [**GroupRemoteInfoDatabricksAccountGroup**](GroupRemoteInfoDatabricksAccountGroup.md) | | [optional]
+**connector_group** | [**GroupRemoteInfoConnectorGroup**](GroupRemoteInfoConnectorGroup.md) | | [optional]
**github_team** | [**GroupRemoteInfoGithubTeam**](GroupRemoteInfoGithubTeam.md) | | [optional]
**gitlab_group** | [**GroupRemoteInfoGitlabGroup**](GroupRemoteInfoGitlabGroup.md) | | [optional]
**google_group** | [**GroupRemoteInfoGoogleGroup**](GroupRemoteInfoGoogleGroup.md) | | [optional]
@@ -18,6 +22,10 @@ Name | Type | Description | Notes
**snowflake_role** | [**GroupRemoteInfoSnowflakeRole**](GroupRemoteInfoSnowflakeRole.md) | | [optional]
**okta_group_rule** | [**GroupRemoteInfoOktaGroupRule**](GroupRemoteInfoOktaGroupRule.md) | | [optional]
**workday_user_security_group** | [**GroupRemoteInfoWorkdayUserSecurityGroup**](GroupRemoteInfoWorkdayUserSecurityGroup.md) | | [optional]
+**pagerduty_on_call_schedule** | [**GroupRemoteInfoPagerdutyOnCallSchedule**](GroupRemoteInfoPagerdutyOnCallSchedule.md) | | [optional]
+**incidentio_on_call_schedule** | [**GroupRemoteInfoIncidentioOnCallSchedule**](GroupRemoteInfoIncidentioOnCallSchedule.md) | | [optional]
+**rootly_on_call_schedule** | [**GroupRemoteInfoRootlyOnCallSchedule**](GroupRemoteInfoRootlyOnCallSchedule.md) | | [optional]
+**devin_group** | [**GroupRemoteInfoDevinGroup**](GroupRemoteInfoDevinGroup.md) | | [optional]
## Example
diff --git a/docs/GroupRemoteInfoAwsSsoGroup.md b/docs/GroupRemoteInfoAwsSsoGroup.md
new file mode 100644
index 0000000..e0ea23c
--- /dev/null
+++ b/docs/GroupRemoteInfoAwsSsoGroup.md
@@ -0,0 +1,30 @@
+# GroupRemoteInfoAwsSsoGroup
+
+Remote info for AWS SSO group.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**group_id** | **str** | The id of the AWS SSO group. |
+
+## Example
+
+```python
+from opal_security.models.group_remote_info_aws_sso_group import GroupRemoteInfoAwsSsoGroup
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of GroupRemoteInfoAwsSsoGroup from a JSON string
+group_remote_info_aws_sso_group_instance = GroupRemoteInfoAwsSsoGroup.from_json(json)
+# print the JSON string representation of the object
+print(GroupRemoteInfoAwsSsoGroup.to_json())
+
+# convert the object into a dict
+group_remote_info_aws_sso_group_dict = group_remote_info_aws_sso_group_instance.to_dict()
+# create an instance of GroupRemoteInfoAwsSsoGroup from a dict
+group_remote_info_aws_sso_group_from_dict = GroupRemoteInfoAwsSsoGroup.from_dict(group_remote_info_aws_sso_group_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/GroupRemoteInfoConnectorGroup.md b/docs/GroupRemoteInfoConnectorGroup.md
new file mode 100644
index 0000000..eeaae6b
--- /dev/null
+++ b/docs/GroupRemoteInfoConnectorGroup.md
@@ -0,0 +1,30 @@
+# GroupRemoteInfoConnectorGroup
+
+Remote info for Connector group.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**group_id** | **str** | The id of the Connector group. |
+
+## Example
+
+```python
+from opal_security.models.group_remote_info_connector_group import GroupRemoteInfoConnectorGroup
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of GroupRemoteInfoConnectorGroup from a JSON string
+group_remote_info_connector_group_instance = GroupRemoteInfoConnectorGroup.from_json(json)
+# print the JSON string representation of the object
+print(GroupRemoteInfoConnectorGroup.to_json())
+
+# convert the object into a dict
+group_remote_info_connector_group_dict = group_remote_info_connector_group_instance.to_dict()
+# create an instance of GroupRemoteInfoConnectorGroup from a dict
+group_remote_info_connector_group_from_dict = GroupRemoteInfoConnectorGroup.from_dict(group_remote_info_connector_group_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/GroupRemoteInfoDatabricksAccountGroup.md b/docs/GroupRemoteInfoDatabricksAccountGroup.md
new file mode 100644
index 0000000..b24c6a9
--- /dev/null
+++ b/docs/GroupRemoteInfoDatabricksAccountGroup.md
@@ -0,0 +1,30 @@
+# GroupRemoteInfoDatabricksAccountGroup
+
+Remote info for Databricks account group.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**group_id** | **str** | The id of the Databricks account group. |
+
+## Example
+
+```python
+from opal_security.models.group_remote_info_databricks_account_group import GroupRemoteInfoDatabricksAccountGroup
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of GroupRemoteInfoDatabricksAccountGroup from a JSON string
+group_remote_info_databricks_account_group_instance = GroupRemoteInfoDatabricksAccountGroup.from_json(json)
+# print the JSON string representation of the object
+print(GroupRemoteInfoDatabricksAccountGroup.to_json())
+
+# convert the object into a dict
+group_remote_info_databricks_account_group_dict = group_remote_info_databricks_account_group_instance.to_dict()
+# create an instance of GroupRemoteInfoDatabricksAccountGroup from a dict
+group_remote_info_databricks_account_group_from_dict = GroupRemoteInfoDatabricksAccountGroup.from_dict(group_remote_info_databricks_account_group_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/GroupRemoteInfoDevinGroup.md b/docs/GroupRemoteInfoDevinGroup.md
new file mode 100644
index 0000000..f4a7308
--- /dev/null
+++ b/docs/GroupRemoteInfoDevinGroup.md
@@ -0,0 +1,30 @@
+# GroupRemoteInfoDevinGroup
+
+Remote info for Devin group.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**group_name** | **str** | The name of the Devin group. |
+
+## Example
+
+```python
+from opal_security.models.group_remote_info_devin_group import GroupRemoteInfoDevinGroup
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of GroupRemoteInfoDevinGroup from a JSON string
+group_remote_info_devin_group_instance = GroupRemoteInfoDevinGroup.from_json(json)
+# print the JSON string representation of the object
+print(GroupRemoteInfoDevinGroup.to_json())
+
+# convert the object into a dict
+group_remote_info_devin_group_dict = group_remote_info_devin_group_instance.to_dict()
+# create an instance of GroupRemoteInfoDevinGroup from a dict
+group_remote_info_devin_group_from_dict = GroupRemoteInfoDevinGroup.from_dict(group_remote_info_devin_group_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/GroupRemoteInfoIncidentioOnCallSchedule.md b/docs/GroupRemoteInfoIncidentioOnCallSchedule.md
new file mode 100644
index 0000000..d8b963e
--- /dev/null
+++ b/docs/GroupRemoteInfoIncidentioOnCallSchedule.md
@@ -0,0 +1,30 @@
+# GroupRemoteInfoIncidentioOnCallSchedule
+
+Remote info for Incident.io on-call schedule group.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**schedule_id** | **str** | The id of the Incident.io on-call schedule. |
+
+## Example
+
+```python
+from opal_security.models.group_remote_info_incidentio_on_call_schedule import GroupRemoteInfoIncidentioOnCallSchedule
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of GroupRemoteInfoIncidentioOnCallSchedule from a JSON string
+group_remote_info_incidentio_on_call_schedule_instance = GroupRemoteInfoIncidentioOnCallSchedule.from_json(json)
+# print the JSON string representation of the object
+print(GroupRemoteInfoIncidentioOnCallSchedule.to_json())
+
+# convert the object into a dict
+group_remote_info_incidentio_on_call_schedule_dict = group_remote_info_incidentio_on_call_schedule_instance.to_dict()
+# create an instance of GroupRemoteInfoIncidentioOnCallSchedule from a dict
+group_remote_info_incidentio_on_call_schedule_from_dict = GroupRemoteInfoIncidentioOnCallSchedule.from_dict(group_remote_info_incidentio_on_call_schedule_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/GroupRemoteInfoPagerdutyOnCallSchedule.md b/docs/GroupRemoteInfoPagerdutyOnCallSchedule.md
new file mode 100644
index 0000000..3bb06e7
--- /dev/null
+++ b/docs/GroupRemoteInfoPagerdutyOnCallSchedule.md
@@ -0,0 +1,30 @@
+# GroupRemoteInfoPagerdutyOnCallSchedule
+
+Remote info for PagerDuty on-call schedule group.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**schedule_id** | **str** | The id of the PagerDuty on-call schedule. |
+
+## Example
+
+```python
+from opal_security.models.group_remote_info_pagerduty_on_call_schedule import GroupRemoteInfoPagerdutyOnCallSchedule
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of GroupRemoteInfoPagerdutyOnCallSchedule from a JSON string
+group_remote_info_pagerduty_on_call_schedule_instance = GroupRemoteInfoPagerdutyOnCallSchedule.from_json(json)
+# print the JSON string representation of the object
+print(GroupRemoteInfoPagerdutyOnCallSchedule.to_json())
+
+# convert the object into a dict
+group_remote_info_pagerduty_on_call_schedule_dict = group_remote_info_pagerduty_on_call_schedule_instance.to_dict()
+# create an instance of GroupRemoteInfoPagerdutyOnCallSchedule from a dict
+group_remote_info_pagerduty_on_call_schedule_from_dict = GroupRemoteInfoPagerdutyOnCallSchedule.from_dict(group_remote_info_pagerduty_on_call_schedule_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/GroupRemoteInfoRootlyOnCallSchedule.md b/docs/GroupRemoteInfoRootlyOnCallSchedule.md
new file mode 100644
index 0000000..395ab89
--- /dev/null
+++ b/docs/GroupRemoteInfoRootlyOnCallSchedule.md
@@ -0,0 +1,30 @@
+# GroupRemoteInfoRootlyOnCallSchedule
+
+Remote info for Rootly on-call schedule group.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**schedule_id** | **str** | The id of the Rootly on-call schedule. |
+
+## Example
+
+```python
+from opal_security.models.group_remote_info_rootly_on_call_schedule import GroupRemoteInfoRootlyOnCallSchedule
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of GroupRemoteInfoRootlyOnCallSchedule from a JSON string
+group_remote_info_rootly_on_call_schedule_instance = GroupRemoteInfoRootlyOnCallSchedule.from_json(json)
+# print the JSON string representation of the object
+print(GroupRemoteInfoRootlyOnCallSchedule.to_json())
+
+# convert the object into a dict
+group_remote_info_rootly_on_call_schedule_dict = group_remote_info_rootly_on_call_schedule_instance.to_dict()
+# create an instance of GroupRemoteInfoRootlyOnCallSchedule from a dict
+group_remote_info_rootly_on_call_schedule_from_dict = GroupRemoteInfoRootlyOnCallSchedule.from_dict(group_remote_info_rootly_on_call_schedule_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/GroupRemoteInfoTailscaleGroup.md b/docs/GroupRemoteInfoTailscaleGroup.md
new file mode 100644
index 0000000..c236714
--- /dev/null
+++ b/docs/GroupRemoteInfoTailscaleGroup.md
@@ -0,0 +1,30 @@
+# GroupRemoteInfoTailscaleGroup
+
+Remote info for Tailscale group.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**group_id** | **str** | The id of the Tailscale group. |
+
+## Example
+
+```python
+from opal_security.models.group_remote_info_tailscale_group import GroupRemoteInfoTailscaleGroup
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of GroupRemoteInfoTailscaleGroup from a JSON string
+group_remote_info_tailscale_group_instance = GroupRemoteInfoTailscaleGroup.from_json(json)
+# print the JSON string representation of the object
+print(GroupRemoteInfoTailscaleGroup.to_json())
+
+# convert the object into a dict
+group_remote_info_tailscale_group_dict = group_remote_info_tailscale_group_instance.to_dict()
+# create an instance of GroupRemoteInfoTailscaleGroup from a dict
+group_remote_info_tailscale_group_from_dict = GroupRemoteInfoTailscaleGroup.from_dict(group_remote_info_tailscale_group_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/GroupResource.md b/docs/GroupResource.md
index 003febd..a33105f 100644
--- a/docs/GroupResource.md
+++ b/docs/GroupResource.md
@@ -6,8 +6,11 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**group_id** | **str** | The ID of the group. |
-**resource_id** | **str** | The ID of the resource. |
+**group_id** | **UUID** | The ID of the group. |
+**resource_id** | **UUID** | The ID of the resource. |
+**group_name** | **str** | The name of the group | [optional]
+**resource_name** | **str** | The name of the resource | [optional]
+**expiration_date** | **datetime** | The day and time the group's access will expire. | [optional]
**access_level** | [**ResourceAccessLevel**](ResourceAccessLevel.md) | |
## Example
diff --git a/docs/GroupTypeEnum.md b/docs/GroupTypeEnum.md
index a0bf4c2..a578c6f 100644
--- a/docs/GroupTypeEnum.md
+++ b/docs/GroupTypeEnum.md
@@ -42,6 +42,14 @@ The type of the group.
* `WORKDAY_USER_SECURITY_GROUP` (value: `'WORKDAY_USER_SECURITY_GROUP'`)
+* `PAGERDUTY_ON_CALL_SCHEDULE` (value: `'PAGERDUTY_ON_CALL_SCHEDULE'`)
+
+* `INCIDENTIO_ON_CALL_SCHEDULE` (value: `'INCIDENTIO_ON_CALL_SCHEDULE'`)
+
+* `ROOTLY_ON_CALL_SCHEDULE` (value: `'ROOTLY_ON_CALL_SCHEDULE'`)
+
+* `DEVIN_GROUP` (value: `'DEVIN_GROUP'`)
+
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/docs/GroupUser.md b/docs/GroupUser.md
index 380f6bd..457bf0a 100644
--- a/docs/GroupUser.md
+++ b/docs/GroupUser.md
@@ -6,10 +6,10 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**group_id** | **str** | The ID of the group. |
+**group_id** | **UUID** | The ID of the group. |
**group_name** | **str** | The name of the group. |
**description** | **str** | The description of the group. |
-**user_id** | **str** | The ID of the user. |
+**user_id** | **UUID** | The ID of the user. |
**access_level** | [**GroupAccessLevel**](GroupAccessLevel.md) | | [optional]
**full_name** | **str** | The user's full name. |
**email** | **str** | The user's email. |
diff --git a/docs/GroupWithAccessLevel.md b/docs/GroupWithAccessLevel.md
index 14c078e..1ffc929 100644
--- a/docs/GroupWithAccessLevel.md
+++ b/docs/GroupWithAccessLevel.md
@@ -6,7 +6,7 @@ Information about a group and corresponding access level
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**group_id** | **str** | The ID of the group. |
+**group_id** | **UUID** | The ID of the group. |
**access_level_remote_id** | **str** | The ID of the resource. | [optional]
## Example
diff --git a/docs/GroupsApi.md b/docs/GroupsApi.md
index 3c0cc11..8ffc357 100644
--- a/docs/GroupsApi.md
+++ b/docs/GroupsApi.md
@@ -37,8 +37,6 @@ Method | HTTP request | Description
# **add_group_containing_group**
> GroupContainingGroup add_group_containing_group(group_id, group_containing_group)
-
-
Creates a new containing group.
### Example
@@ -73,7 +71,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.GroupsApi(api_client)
- group_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the group.
+ group_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the group.
group_containing_group = opal_security.GroupContainingGroup() # GroupContainingGroup |
try:
@@ -91,7 +89,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **group_id** | **str**| The ID of the group. |
+ **group_id** | **UUID**| The ID of the group. |
**group_containing_group** | [**GroupContainingGroup**](GroupContainingGroup.md)| |
### Return type
@@ -118,8 +116,6 @@ Name | Type | Description | Notes
# **add_group_resource**
> GroupResource add_group_resource(group_id, resource_id, access_level_remote_id=access_level_remote_id, add_group_resource_request=add_group_resource_request)
-
-
Adds a resource to a group.
### Example
@@ -155,8 +151,8 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.GroupsApi(api_client)
- group_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the group.
- resource_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the resource.
+ group_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the group.
+ resource_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the resource.
access_level_remote_id = 'arn:aws:iam::590304332660:role/AdministratorAccess' # str | The remote ID of the access level to grant to this user. If omitted, the default access level remote ID value (empty string) is used. (optional)
add_group_resource_request = opal_security.AddGroupResourceRequest() # AddGroupResourceRequest | (optional)
@@ -175,8 +171,8 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **group_id** | **str**| The ID of the group. |
- **resource_id** | **str**| The ID of the resource. |
+ **group_id** | **UUID**| The ID of the group. |
+ **resource_id** | **UUID**| The ID of the resource. |
**access_level_remote_id** | **str**| The remote ID of the access level to grant to this user. If omitted, the default access level remote ID value (empty string) is used. | [optional]
**add_group_resource_request** | [**AddGroupResourceRequest**](AddGroupResourceRequest.md)| | [optional]
@@ -204,8 +200,6 @@ Name | Type | Description | Notes
# **add_group_user**
> GroupUser add_group_user(group_id, user_id, duration_minutes=duration_minutes, access_level_remote_id=access_level_remote_id, add_group_user_request=add_group_user_request)
-
-
Adds a user to this group.
### Example
@@ -241,8 +235,8 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.GroupsApi(api_client)
- group_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the group.
- user_id = 'f92aa855-cea9-4814-b9d8-f2a60d3e4a06' # str | The ID of the user to add.
+ group_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the group.
+ user_id = UUID('f92aa855-cea9-4814-b9d8-f2a60d3e4a06') # UUID | The ID of the user to add.
duration_minutes = 60 # int | The duration for which the group can be accessed (in minutes). Use 0 to set to indefinite. (optional)
access_level_remote_id = 'arn:aws:iam::590304332660:role/AdministratorAccess' # str | The remote ID of the access level to grant to this user. If omitted, the default access level remote ID value (empty string) is used. (optional)
add_group_user_request = opal_security.AddGroupUserRequest() # AddGroupUserRequest | (optional)
@@ -262,8 +256,8 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **group_id** | **str**| The ID of the group. |
- **user_id** | **str**| The ID of the user to add. |
+ **group_id** | **UUID**| The ID of the group. |
+ **user_id** | **UUID**| The ID of the user to add. |
**duration_minutes** | **int**| The duration for which the group can be accessed (in minutes). Use 0 to set to indefinite. | [optional]
**access_level_remote_id** | **str**| The remote ID of the access level to grant to this user. If omitted, the default access level remote ID value (empty string) is used. | [optional]
**add_group_user_request** | [**AddGroupUserRequest**](AddGroupUserRequest.md)| | [optional]
@@ -292,8 +286,6 @@ Name | Type | Description | Notes
# **create_group**
> Group create_group(create_group_info)
-
-
Creates an Opal group or [imports a remote group](https://docs.opal.dev/reference/end-system-objects).
### Example
@@ -372,8 +364,6 @@ Name | Type | Description | Notes
# **delete_group**
> delete_group(group_id)
-
-
Deletes a group.
### Example
@@ -407,7 +397,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.GroupsApi(api_client)
- group_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the group.
+ group_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the group.
try:
api_instance.delete_group(group_id)
@@ -422,7 +412,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **group_id** | **str**| The ID of the group. |
+ **group_id** | **UUID**| The ID of the group. |
### Return type
@@ -448,8 +438,6 @@ void (empty response body)
# **delete_group_user**
> delete_group_user(group_id, user_id, access_level_remote_id=access_level_remote_id)
-
-
Removes a user's access from this group.
### Example
@@ -483,8 +471,8 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.GroupsApi(api_client)
- group_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the group.
- user_id = 'f92aa855-cea9-4814-b9d8-f2a60d3e4a06' # str | The ID of a user to remove from this group.
+ group_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the group.
+ user_id = UUID('f92aa855-cea9-4814-b9d8-f2a60d3e4a06') # UUID | The ID of a user to remove from this group.
access_level_remote_id = '30' # str | The remote ID of the access level for which this user has direct access. If omitted, the default access level remote ID value (empty string) is assumed. (optional)
try:
@@ -500,8 +488,8 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **group_id** | **str**| The ID of the group. |
- **user_id** | **str**| The ID of a user to remove from this group. |
+ **group_id** | **UUID**| The ID of the group. |
+ **user_id** | **UUID**| The ID of a user to remove from this group. |
**access_level_remote_id** | **str**| The remote ID of the access level for which this user has direct access. If omitted, the default access level remote ID value (empty string) is assumed. | [optional]
### Return type
@@ -564,7 +552,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.GroupsApi(api_client)
- group_id = '32acc112-21ff-4669-91c2-21e27683eaa1' # str | The ID of the group.
+ group_id = UUID('32acc112-21ff-4669-91c2-21e27683eaa1') # UUID | The ID of the group.
try:
# Get group by ID
@@ -582,7 +570,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **group_id** | **str**| The ID of the group. |
+ **group_id** | **UUID**| The ID of the group. |
### Return type
@@ -644,8 +632,8 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.GroupsApi(api_client)
- group_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the group.
- containing_group_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the containing group.
+ group_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the group.
+ containing_group_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the containing group.
try:
# Get nested group by ID
@@ -663,8 +651,8 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **group_id** | **str**| The ID of the group. |
- **containing_group_id** | **str**| The ID of the containing group. |
+ **group_id** | **UUID**| The ID of the group. |
+ **containing_group_id** | **UUID**| The ID of the containing group. |
### Return type
@@ -726,7 +714,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.GroupsApi(api_client)
- group_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the group.
+ group_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the group.
try:
# Get nested groups
@@ -744,7 +732,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **group_id** | **str**| The ID of the group. |
+ **group_id** | **UUID**| The ID of the group. |
### Return type
@@ -770,8 +758,6 @@ Name | Type | Description | Notes
# **get_group_message_channels**
> MessageChannelList get_group_message_channels(group_id)
-
-
Gets the list of audit and reviewer message channels attached to a group.
### Example
@@ -806,7 +792,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.GroupsApi(api_client)
- group_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the group.
+ group_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the group.
try:
api_response = api_instance.get_group_message_channels(group_id)
@@ -823,7 +809,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **group_id** | **str**| The ID of the group. |
+ **group_id** | **UUID**| The ID of the group. |
### Return type
@@ -849,8 +835,6 @@ Name | Type | Description | Notes
# **get_group_on_call_schedules**
> OnCallScheduleList get_group_on_call_schedules(group_id)
-
-
Gets the list of on call schedules attached to a group.
### Example
@@ -885,7 +869,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.GroupsApi(api_client)
- group_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the group.
+ group_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the group.
try:
api_response = api_instance.get_group_on_call_schedules(group_id)
@@ -902,7 +886,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **group_id** | **str**| The ID of the group. |
+ **group_id** | **UUID**| The ID of the group. |
### Return type
@@ -928,8 +912,6 @@ Name | Type | Description | Notes
# **get_group_resources**
> GroupResourceList get_group_resources(group_id)
-
-
Gets the list of resources that the group gives access to.
### Example
@@ -964,7 +946,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.GroupsApi(api_client)
- group_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the group.
+ group_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the group.
try:
api_response = api_instance.get_group_resources(group_id)
@@ -981,7 +963,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **group_id** | **str**| The ID of the group. |
+ **group_id** | **UUID**| The ID of the group. |
### Return type
@@ -1007,8 +989,6 @@ Name | Type | Description | Notes
# **get_group_reviewer_stages**
> List[ReviewerStage] get_group_reviewer_stages(group_id)
-
-
Gets the list of reviewer stages for a group.
### Example
@@ -1043,7 +1023,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.GroupsApi(api_client)
- group_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the group.
+ group_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the group.
try:
api_response = api_instance.get_group_reviewer_stages(group_id)
@@ -1060,7 +1040,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **group_id** | **str**| The ID of the group. |
+ **group_id** | **UUID**| The ID of the group. |
### Return type
@@ -1084,9 +1064,7 @@ Name | Type | Description | Notes
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **get_group_reviewers**
-> List[str] get_group_reviewers(group_id)
-
-
+> List[UUID] get_group_reviewers(group_id)
Gets the list of owner IDs of the reviewers for a group.
@@ -1121,7 +1099,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.GroupsApi(api_client)
- group_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the group.
+ group_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the group.
try:
api_response = api_instance.get_group_reviewers(group_id)
@@ -1138,11 +1116,11 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **group_id** | **str**| The ID of the group. |
+ **group_id** | **UUID**| The ID of the group. |
### Return type
-**List[str]**
+**List[UUID]**
### Authorization
@@ -1164,8 +1142,6 @@ Name | Type | Description | Notes
# **get_group_tags**
> TagsList get_group_tags(group_id)
-
-
Returns all tags applied to the group.
### Example
@@ -1200,7 +1176,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.GroupsApi(api_client)
- group_id = '1b978423-db0a-4037-a4cf-f79c60cb67b3' # str | The ID of the group whose tags to return.
+ group_id = UUID('1b978423-db0a-4037-a4cf-f79c60cb67b3') # UUID | The ID of the group whose tags to return.
try:
api_response = api_instance.get_group_tags(group_id)
@@ -1217,7 +1193,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **group_id** | **str**| The ID of the group whose tags to return. |
+ **group_id** | **UUID**| The ID of the group whose tags to return. |
### Return type
@@ -1243,8 +1219,6 @@ Name | Type | Description | Notes
# **get_group_users**
> GroupUserList get_group_users(group_id, cursor=cursor, page_size=page_size)
-
-
Gets the list of users for this group.
### Example
@@ -1279,7 +1253,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.GroupsApi(api_client)
- group_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the group.
+ group_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the group.
cursor = 'cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw' # str | The pagination cursor value. (optional)
page_size = 200 # int | Number of results to return per page. Default is 200. (optional)
@@ -1298,7 +1272,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **group_id** | **str**| The ID of the group. |
+ **group_id** | **UUID**| The ID of the group. |
**cursor** | **str**| The pagination cursor value. | [optional]
**page_size** | **int**| Number of results to return per page. Default is 200. | [optional]
@@ -1326,8 +1300,6 @@ Name | Type | Description | Notes
# **get_group_visibility**
> VisibilityInfo get_group_visibility(group_id)
-
-
Gets the visibility of this group.
### Example
@@ -1362,7 +1334,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.GroupsApi(api_client)
- group_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the group.
+ group_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the group.
try:
api_response = api_instance.get_group_visibility(group_id)
@@ -1379,7 +1351,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **group_id** | **str**| The ID of the group. |
+ **group_id** | **UUID**| The ID of the group. |
### Return type
@@ -1445,7 +1417,7 @@ with opal_security.ApiClient(configuration) as api_client:
cursor = 'cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw' # str | The pagination cursor value. (optional)
page_size = 200 # int | Number of results to return per page. Default is 200. (optional)
group_type_filter = opal_security.GroupTypeEnum() # GroupTypeEnum | The group type to filter by. (optional)
- group_ids = ['[\"4baf8423-db0a-4037-a4cf-f79c60cb67a5\",\"1b978423-db0a-4037-a4cf-f79c60cb67b3\"]'] # List[str] | The group ids to filter by. (optional)
+ group_ids = [["4baf8423-db0a-4037-a4cf-f79c60cb67a5","1b978423-db0a-4037-a4cf-f79c60cb67b3"]] # List[UUID] | The group ids to filter by. (optional)
group_name = 'example-name' # str | Group name. (optional)
try:
@@ -1467,7 +1439,7 @@ Name | Type | Description | Notes
**cursor** | **str**| The pagination cursor value. | [optional]
**page_size** | **int**| Number of results to return per page. Default is 200. | [optional]
**group_type_filter** | [**GroupTypeEnum**](.md)| The group type to filter by. | [optional]
- **group_ids** | [**List[str]**](str.md)| The group ids to filter by. | [optional]
+ **group_ids** | [**List[UUID]**](UUID.md)| The group ids to filter by. | [optional]
**group_name** | **str**| Group name. | [optional]
### Return type
@@ -1494,8 +1466,6 @@ Name | Type | Description | Notes
# **get_user_groups**
> GroupUserList get_user_groups(user_id, cursor=cursor, page_size=page_size)
-
-
Returns all groups that the user is a member of.
### Example
@@ -1530,7 +1500,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.GroupsApi(api_client)
- user_id = '1b978423-db0a-4037-a4cf-f79c60cb67b3' # str | The ID of the user whose groups to return.
+ user_id = UUID('1b978423-db0a-4037-a4cf-f79c60cb67b3') # UUID | The ID of the user whose groups to return.
cursor = 'cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw' # str | The pagination cursor value. (optional)
page_size = 200 # int | Number of results to return per page. Default is 200. (optional)
@@ -1549,7 +1519,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **user_id** | **str**| The ID of the user whose groups to return. |
+ **user_id** | **UUID**| The ID of the user whose groups to return. |
**cursor** | **str**| The pagination cursor value. | [optional]
**page_size** | **int**| Number of results to return per page. Default is 200. | [optional]
@@ -1575,9 +1545,7 @@ Name | Type | Description | Notes
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **remove_group_containing_group**
-> remove_group_containing_group(group_id, containing_group_id)
-
-
+> remove_group_containing_group(group_id, containing_group_id, access_level_remote_id=access_level_remote_id)
Removes a containing group from a group.
@@ -1612,11 +1580,12 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.GroupsApi(api_client)
- group_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the group.
- containing_group_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the containing group.
+ group_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the member group to remove.
+ containing_group_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the containing group.
+ access_level_remote_id = 'arn:aws:iam::590304332660:role/AdministratorAccess' # str | The remote ID of the member group's access level to filter by. (optional)
try:
- api_instance.remove_group_containing_group(group_id, containing_group_id)
+ api_instance.remove_group_containing_group(group_id, containing_group_id, access_level_remote_id=access_level_remote_id)
except Exception as e:
print("Exception when calling GroupsApi->remove_group_containing_group: %s\n" % e)
```
@@ -1628,8 +1597,9 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **group_id** | **str**| The ID of the group. |
- **containing_group_id** | **str**| The ID of the containing group. |
+ **group_id** | **UUID**| The ID of the member group to remove. |
+ **containing_group_id** | **UUID**| The ID of the containing group. |
+ **access_level_remote_id** | **str**| The remote ID of the member group's access level to filter by. | [optional]
### Return type
@@ -1648,14 +1618,12 @@ void (empty response body)
| Status code | Description | Response headers |
|-------------|-------------|------------------|
-**204** | The containing group was successfully removed from the group. | - |
+**204** | The member group was successfully removed from the containing group. | - |
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **set_group_message_channels**
-> List[str] set_group_message_channels(group_id, message_channel_id_list)
-
-
+> List[UUID] set_group_message_channels(group_id, message_channel_id_list)
Sets the list of audit message channels attached to a group.
@@ -1691,7 +1659,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.GroupsApi(api_client)
- group_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the group.
+ group_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the group.
message_channel_id_list = opal_security.MessageChannelIDList() # MessageChannelIDList |
try:
@@ -1709,12 +1677,12 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **group_id** | **str**| The ID of the group. |
+ **group_id** | **UUID**| The ID of the group. |
**message_channel_id_list** | [**MessageChannelIDList**](MessageChannelIDList.md)| |
### Return type
-**List[str]**
+**List[UUID]**
### Authorization
@@ -1734,9 +1702,7 @@ Name | Type | Description | Notes
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **set_group_on_call_schedules**
-> List[str] set_group_on_call_schedules(group_id, on_call_schedule_id_list)
-
-
+> List[UUID] set_group_on_call_schedules(group_id, on_call_schedule_id_list)
Sets the list of on call schedules attached to a group.
@@ -1772,7 +1738,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.GroupsApi(api_client)
- group_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the group.
+ group_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the group.
on_call_schedule_id_list = opal_security.OnCallScheduleIDList() # OnCallScheduleIDList |
try:
@@ -1790,12 +1756,12 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **group_id** | **str**| The ID of the group. |
+ **group_id** | **UUID**| The ID of the group. |
**on_call_schedule_id_list** | [**OnCallScheduleIDList**](OnCallScheduleIDList.md)| |
### Return type
-**List[str]**
+**List[UUID]**
### Authorization
@@ -1817,8 +1783,6 @@ Name | Type | Description | Notes
# **set_group_resources**
> set_group_resources(group_id, update_group_resources_info)
-
-
Sets the list of resources that the group gives access to.
### Example
@@ -1853,7 +1817,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.GroupsApi(api_client)
- group_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the group.
+ group_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the group.
update_group_resources_info = opal_security.UpdateGroupResourcesInfo() # UpdateGroupResourcesInfo |
try:
@@ -1869,7 +1833,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **group_id** | **str**| The ID of the group. |
+ **group_id** | **UUID**| The ID of the group. |
**update_group_resources_info** | [**UpdateGroupResourcesInfo**](UpdateGroupResourcesInfo.md)| |
### Return type
@@ -1896,8 +1860,6 @@ void (empty response body)
# **set_group_reviewer_stages**
> List[ReviewerStage] set_group_reviewer_stages(group_id, reviewer_stage_list)
-
-
Sets the list of reviewer stages for a group.
### Example
@@ -1933,7 +1895,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.GroupsApi(api_client)
- group_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the group.
+ group_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the group.
reviewer_stage_list = opal_security.ReviewerStageList() # ReviewerStageList |
try:
@@ -1951,7 +1913,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **group_id** | **str**| The ID of the group. |
+ **group_id** | **UUID**| The ID of the group. |
**reviewer_stage_list** | [**ReviewerStageList**](ReviewerStageList.md)| |
### Return type
@@ -1976,9 +1938,7 @@ Name | Type | Description | Notes
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **set_group_reviewers**
-> List[str] set_group_reviewers(group_id, reviewer_id_list)
-
-
+> List[UUID] set_group_reviewers(group_id, reviewer_id_list)
Sets the list of reviewers for a group.
@@ -2014,7 +1974,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.GroupsApi(api_client)
- group_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the group.
+ group_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the group.
reviewer_id_list = opal_security.ReviewerIDList() # ReviewerIDList |
try:
@@ -2032,12 +1992,12 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **group_id** | **str**| The ID of the group. |
+ **group_id** | **UUID**| The ID of the group. |
**reviewer_id_list** | [**ReviewerIDList**](ReviewerIDList.md)| |
### Return type
-**List[str]**
+**List[UUID]**
### Authorization
@@ -2059,8 +2019,6 @@ Name | Type | Description | Notes
# **set_group_visibility**
> VisibilityInfo set_group_visibility(group_id, visibility_info)
-
-
Sets the visibility of this group.
### Example
@@ -2095,7 +2053,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.GroupsApi(api_client)
- group_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the group.
+ group_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the group.
visibility_info = opal_security.VisibilityInfo() # VisibilityInfo |
try:
@@ -2113,7 +2071,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **group_id** | **str**| The ID of the group. |
+ **group_id** | **UUID**| The ID of the group. |
**visibility_info** | [**VisibilityInfo**](VisibilityInfo.md)| |
### Return type
@@ -2140,8 +2098,6 @@ Name | Type | Description | Notes
# **update_group_user**
> GroupUser update_group_user(group_id, user_id, update_group_user_request)
-
-
Updates a user's access level or duration in this group.
### Example
@@ -2177,8 +2133,8 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.GroupsApi(api_client)
- group_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the group.
- user_id = 'f92aa855-cea9-4814-b9d8-f2a60d3e4a06' # str | The ID of the user whose access is being updated.
+ group_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the group.
+ user_id = UUID('f92aa855-cea9-4814-b9d8-f2a60d3e4a06') # UUID | The ID of the user whose access is being updated.
update_group_user_request = opal_security.UpdateGroupUserRequest() # UpdateGroupUserRequest |
try:
@@ -2196,8 +2152,8 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **group_id** | **str**| The ID of the group. |
- **user_id** | **str**| The ID of the user whose access is being updated. |
+ **group_id** | **UUID**| The ID of the group. |
+ **user_id** | **UUID**| The ID of the user whose access is being updated. |
**update_group_user_request** | [**UpdateGroupUserRequest**](UpdateGroupUserRequest.md)| |
### Return type
@@ -2224,8 +2180,6 @@ Name | Type | Description | Notes
# **update_groups**
> UpdateGroupInfoList update_groups(update_group_info_list)
-
-
Bulk updates a list of groups.
### Example
diff --git a/docs/IdpGroupMapping.md b/docs/IdpGroupMapping.md
index df8b1a5..562580f 100644
--- a/docs/IdpGroupMapping.md
+++ b/docs/IdpGroupMapping.md
@@ -6,8 +6,8 @@ Information about a group mapping.
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**app_resource_id** | **str** | The ID of the app resource. | [optional]
-**group_id** | **str** | The ID of the group. |
+**app_resource_id** | **UUID** | The ID of the app resource. | [optional]
+**group_id** | **UUID** | The ID of the group. |
**alias** | **str** | The alias of the group. | [optional]
**hidden_from_end_user** | **bool** | A bool representing whether or not the group is hidden from the end user. |
diff --git a/docs/IdpGroupMappingsApi.md b/docs/IdpGroupMappingsApi.md
index c3c5f2e..d9191e8 100644
--- a/docs/IdpGroupMappingsApi.md
+++ b/docs/IdpGroupMappingsApi.md
@@ -14,9 +14,12 @@ Method | HTTP request | Description
# **create_idp_group_mapping**
> IdpGroupMapping create_idp_group_mapping(app_resource_id, group_id, create_idp_group_mapping_request=create_idp_group_mapping_request)
+Creates or updates an individual `IdpGroupMapping` object (upsert operation).
+**Behavior:**
+- If the mapping doesn't exist, it will be created with the provided values
+- If the mapping exists, only the fields provided in the request will be updated
-Creates or updates an individual `IdpGroupMapping` object (upsert operation). **Behavior:** - If the mapping doesn't exist, it will be created with the provided values - If the mapping exists, only the fields provided in the request will be updated
### Example
@@ -51,8 +54,8 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.IdpGroupMappingsApi(api_client)
- app_resource_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the Okta app.
- group_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the group.
+ app_resource_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the Okta app.
+ group_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the group.
create_idp_group_mapping_request = opal_security.CreateIdpGroupMappingRequest() # CreateIdpGroupMappingRequest | (optional)
try:
@@ -70,8 +73,8 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **app_resource_id** | **str**| The ID of the Okta app. |
- **group_id** | **str**| The ID of the group. |
+ **app_resource_id** | **UUID**| The ID of the Okta app. |
+ **group_id** | **UUID**| The ID of the group. |
**create_idp_group_mapping_request** | [**CreateIdpGroupMappingRequest**](CreateIdpGroupMappingRequest.md)| | [optional]
### Return type
@@ -98,8 +101,6 @@ Name | Type | Description | Notes
# **delete_idp_group_mappings**
> delete_idp_group_mappings(app_resource_id, group_id)
-
-
Deletes an `IdpGroupMapping` object.
### Example
@@ -133,8 +134,8 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.IdpGroupMappingsApi(api_client)
- app_resource_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the Okta app.
- group_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the group.
+ app_resource_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the Okta app.
+ group_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the group.
try:
api_instance.delete_idp_group_mappings(app_resource_id, group_id)
@@ -149,8 +150,8 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **app_resource_id** | **str**| The ID of the Okta app. |
- **group_id** | **str**| The ID of the group. |
+ **app_resource_id** | **UUID**| The ID of the Okta app. |
+ **group_id** | **UUID**| The ID of the group. |
### Return type
@@ -176,8 +177,6 @@ void (empty response body)
# **get_idp_group_mapping**
> IdpGroupMapping get_idp_group_mapping(app_resource_id, group_id)
-
-
Gets an `IdpGroupMapping` object for an Okta app and group.
### Example
@@ -212,8 +211,8 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.IdpGroupMappingsApi(api_client)
- app_resource_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the Okta app.
- group_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the group.
+ app_resource_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the Okta app.
+ group_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the group.
try:
api_response = api_instance.get_idp_group_mapping(app_resource_id, group_id)
@@ -230,8 +229,8 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **app_resource_id** | **str**| The ID of the Okta app. |
- **group_id** | **str**| The ID of the group. |
+ **app_resource_id** | **UUID**| The ID of the Okta app. |
+ **group_id** | **UUID**| The ID of the group. |
### Return type
@@ -257,8 +256,6 @@ Name | Type | Description | Notes
# **get_idp_group_mappings**
> IdpGroupMappingList get_idp_group_mappings(app_resource_id)
-
-
Returns the configured set of available `IdpGroupMapping` objects for an Okta app.
### Example
@@ -293,7 +290,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.IdpGroupMappingsApi(api_client)
- app_resource_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the Okta app.
+ app_resource_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the Okta app.
try:
api_response = api_instance.get_idp_group_mappings(app_resource_id)
@@ -310,7 +307,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **app_resource_id** | **str**| The ID of the Okta app. |
+ **app_resource_id** | **UUID**| The ID of the Okta app. |
### Return type
@@ -336,8 +333,6 @@ Name | Type | Description | Notes
# **update_idp_group_mappings**
> update_idp_group_mappings(app_resource_id, update_idp_group_mappings_request)
-
-
Updates the list of available `IdpGroupMapping` objects for an Okta app.
### Example
@@ -372,7 +367,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.IdpGroupMappingsApi(api_client)
- app_resource_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the Okta app.
+ app_resource_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the Okta app.
update_idp_group_mappings_request = opal_security.UpdateIdpGroupMappingsRequest() # UpdateIdpGroupMappingsRequest |
try:
@@ -388,7 +383,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **app_resource_id** | **str**| The ID of the Okta app. |
+ **app_resource_id** | **UUID**| The ID of the Okta app. |
**update_idp_group_mappings_request** | [**UpdateIdpGroupMappingsRequest**](UpdateIdpGroupMappingsRequest.md)| |
### Return type
diff --git a/docs/MessageChannel.md b/docs/MessageChannel.md
index ef09577..13f3dbb 100644
--- a/docs/MessageChannel.md
+++ b/docs/MessageChannel.md
@@ -6,7 +6,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**message_channel_id** | **str** | The ID of the message channel. |
+**message_channel_id** | **UUID** | The ID of the message channel. |
**third_party_provider** | [**MessageChannelProviderEnum**](MessageChannelProviderEnum.md) | | [optional]
**remote_id** | **str** | The remote ID of the message channel | [optional]
**name** | **str** | The name of the message channel. | [optional]
diff --git a/docs/MessageChannelIDList.md b/docs/MessageChannelIDList.md
index ba6b97d..1692c4b 100644
--- a/docs/MessageChannelIDList.md
+++ b/docs/MessageChannelIDList.md
@@ -6,7 +6,7 @@ A list of message channel IDs.
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**message_channel_ids** | **List[str]** | |
+**message_channel_ids** | **List[UUID]** | |
## Example
diff --git a/docs/MessageChannelsApi.md b/docs/MessageChannelsApi.md
index e36c5e8..7dfd368 100644
--- a/docs/MessageChannelsApi.md
+++ b/docs/MessageChannelsApi.md
@@ -12,8 +12,6 @@ Method | HTTP request | Description
# **create_message_channel**
> MessageChannel create_message_channel(create_message_channel_info)
-
-
Creates a `MessageChannel` objects.
### Example
@@ -128,7 +126,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.MessageChannelsApi(api_client)
- message_channel_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the message_channel.
+ message_channel_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the message_channel.
try:
# Get message channel by ID
@@ -146,7 +144,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **message_channel_id** | **str**| The ID of the message_channel. |
+ **message_channel_id** | **UUID**| The ID of the message_channel. |
### Return type
diff --git a/docs/NonHumanIdentitiesApi.md b/docs/NonHumanIdentitiesApi.md
index 511955d..040c778 100644
--- a/docs/NonHumanIdentitiesApi.md
+++ b/docs/NonHumanIdentitiesApi.md
@@ -10,8 +10,6 @@ Method | HTTP request | Description
# **get_nhis**
> PaginatedResourcesList get_nhis(cursor=cursor, page_size=page_size)
-
-
Returns a list of non-human identities for your organization.
### Example
diff --git a/docs/OnCallSchedule.md b/docs/OnCallSchedule.md
index 9ee6b89..64c33d5 100644
--- a/docs/OnCallSchedule.md
+++ b/docs/OnCallSchedule.md
@@ -6,7 +6,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**on_call_schedule_id** | **str** | The ID of the on-call schedule. | [optional]
+**on_call_schedule_id** | **UUID** | The ID of the on-call schedule. | [optional]
**third_party_provider** | [**OnCallScheduleProviderEnum**](OnCallScheduleProviderEnum.md) | | [optional]
**remote_id** | **str** | The remote ID of the on call schedule | [optional]
**name** | **str** | The name of the on call schedule. | [optional]
diff --git a/docs/OnCallScheduleIDList.md b/docs/OnCallScheduleIDList.md
index 92d1e0c..bbf8108 100644
--- a/docs/OnCallScheduleIDList.md
+++ b/docs/OnCallScheduleIDList.md
@@ -6,7 +6,7 @@ A list of on call schedule Opal UUIDs. To get the matching remote IDs, use the /
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**on_call_schedule_ids** | **List[str]** | |
+**on_call_schedule_ids** | **List[UUID]** | |
## Example
diff --git a/docs/OnCallSchedulesApi.md b/docs/OnCallSchedulesApi.md
index d14080e..9c24729 100644
--- a/docs/OnCallSchedulesApi.md
+++ b/docs/OnCallSchedulesApi.md
@@ -12,8 +12,6 @@ Method | HTTP request | Description
# **create_on_call_schedule**
> OnCallSchedule create_on_call_schedule(create_on_call_schedule_info)
-
-
Creates a `OnCallSchedule` objects.
### Example
@@ -128,7 +126,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.OnCallSchedulesApi(api_client)
- on_call_schedule_id = '9546209c-42c2-4801-96d7-9ec42df0f59c' # str | The ID of the on_call_schedule.
+ on_call_schedule_id = UUID('9546209c-42c2-4801-96d7-9ec42df0f59c') # UUID | The ID of the on_call_schedule.
try:
# Get on call schedule by ID
@@ -146,7 +144,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **on_call_schedule_id** | **str**| The ID of the on_call_schedule. |
+ **on_call_schedule_id** | **UUID**| The ID of the on_call_schedule. |
### Return type
diff --git a/docs/Owner.md b/docs/Owner.md
index 3336f21..c21f550 100644
--- a/docs/Owner.md
+++ b/docs/Owner.md
@@ -6,12 +6,12 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**owner_id** | **str** | The ID of the owner. |
+**owner_id** | **UUID** | The ID of the owner. |
**name** | **str** | The name of the owner. | [optional]
**description** | **str** | A description of the owner. | [optional]
**access_request_escalation_period** | **int** | The amount of time (in minutes) before the next reviewer is notified. Use 0 to remove escalation policy. | [optional]
-**reviewer_message_channel_id** | **str** | | [optional]
-**source_group_id** | **str** | | [optional]
+**reviewer_message_channel_id** | **UUID** | | [optional]
+**source_group_id** | **UUID** | | [optional]
## Example
diff --git a/docs/OwnersApi.md b/docs/OwnersApi.md
index 90fdf58..8eee62d 100644
--- a/docs/OwnersApi.md
+++ b/docs/OwnersApi.md
@@ -17,8 +17,6 @@ Method | HTTP request | Description
# **create_owner**
> Owner create_owner(create_owner_info)
-
-
Creates an owner.
### Example
@@ -97,8 +95,6 @@ Name | Type | Description | Notes
# **delete_owner**
> delete_owner(owner_id)
-
-
Deletes an owner.
### Example
@@ -132,7 +128,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.OwnersApi(api_client)
- owner_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the owner.
+ owner_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the owner.
try:
api_instance.delete_owner(owner_id)
@@ -147,7 +143,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **owner_id** | **str**| The ID of the owner. |
+ **owner_id** | **UUID**| The ID of the owner. |
### Return type
@@ -209,7 +205,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.OwnersApi(api_client)
- owner_id = '32acc112-21ff-4669-91c2-21e27683eaa1' # str | The ID of the owner.
+ owner_id = UUID('32acc112-21ff-4669-91c2-21e27683eaa1') # UUID | The ID of the owner.
try:
# Get owner by ID
@@ -227,7 +223,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **owner_id** | **str**| The ID of the owner. |
+ **owner_id** | **UUID**| The ID of the owner. |
### Return type
@@ -253,8 +249,6 @@ Name | Type | Description | Notes
# **get_owner_from_name**
> Owner get_owner_from_name(owner_name)
-
-
Returns an `Owner` object. Does not support owners with `/` in their name, use /owners?name=... instead.
### Example
@@ -332,8 +326,6 @@ Name | Type | Description | Notes
# **get_owner_users**
> UserList get_owner_users(owner_id)
-
-
Gets the list of users for this owner, in escalation priority order if applicable.
### Example
@@ -368,7 +360,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.OwnersApi(api_client)
- owner_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the owner.
+ owner_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the owner.
try:
api_response = api_instance.get_owner_users(owner_id)
@@ -385,7 +377,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **owner_id** | **str**| The ID of the owner. |
+ **owner_id** | **UUID**| The ID of the owner. |
### Return type
@@ -495,8 +487,6 @@ Name | Type | Description | Notes
# **set_owner_users**
> UserList set_owner_users(owner_id, user_id_list)
-
-
Sets the list of users for this owner. If escalation is enabled, the order of this list is the escalation priority order of the users. If the owner has a source group, adding or removing users from this list won't be possible.
### Example
@@ -532,7 +522,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.OwnersApi(api_client)
- owner_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the owner.
+ owner_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the owner.
user_id_list = opal_security.UserIDList() # UserIDList |
try:
@@ -550,7 +540,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **owner_id** | **str**| The ID of the owner. |
+ **owner_id** | **UUID**| The ID of the owner. |
**user_id_list** | [**UserIDList**](UserIDList.md)| |
### Return type
@@ -577,8 +567,6 @@ Name | Type | Description | Notes
# **update_owners**
> UpdateOwnerInfoList update_owners(update_owner_info_list)
-
-
Bulk updates a list of owners.
### Example
diff --git a/docs/RDSEngineEnum.md b/docs/RDSEngineEnum.md
new file mode 100644
index 0000000..086b058
--- /dev/null
+++ b/docs/RDSEngineEnum.md
@@ -0,0 +1,13 @@
+# RDSEngineEnum
+
+The database engine for the RDS instance.
+
+## Enum
+
+* `MYSQL` (value: `'MYSQL'`)
+
+* `POSTGRESQL` (value: `'POSTGRESQL'`)
+
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/RemoteUser.md b/docs/RemoteUser.md
index 06aa797..e26f373 100644
--- a/docs/RemoteUser.md
+++ b/docs/RemoteUser.md
@@ -6,7 +6,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**user_id** | **str** | The ID of the user. |
+**user_id** | **UUID** | The ID of the user. |
**remote_id** | **str** | The ID of the remote user. |
**third_party_provider** | [**ThirdPartyProviderEnum**](ThirdPartyProviderEnum.md) | The third party provider of the remote user. |
diff --git a/docs/Request.md b/docs/Request.md
index de0a72c..dc5f9c9 100644
--- a/docs/Request.md
+++ b/docs/Request.md
@@ -6,19 +6,19 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**id** | **str** | The unique identifier of the request. |
+**id** | **UUID** | The unique identifier of the request. |
**created_at** | **datetime** | The date and time the request was created. |
**updated_at** | **datetime** | The date and time the request was last updated. |
-**requester_id** | **str** | The unique identifier of the user who created the request. |
-**target_user_id** | **str** | The unique identifier of the user who is the target of the request. | [optional]
-**target_group_id** | **str** | The unique identifier of the group who is the target of the request. | [optional]
+**requester_id** | **UUID** | The unique identifier of the user who created the request. |
+**target_user_id** | **UUID** | The unique identifier of the user who is the target of the request. | [optional]
+**target_group_id** | **UUID** | The unique identifier of the group who is the target of the request. | [optional]
**status** | [**RequestStatusEnum**](RequestStatusEnum.md) | The status of the request. |
**reason** | **str** | The reason for the request. |
**duration_minutes** | **int** | The duration of the request in minutes. | [optional]
**requested_items_list** | [**List[RequestedItem]**](RequestedItem.md) | The list of targets for the request. | [optional]
**custom_fields_responses** | [**List[RequestCustomFieldResponse]**](RequestCustomFieldResponse.md) | The responses given to the custom fields associated to the request | [optional]
**stages** | [**RequestItemStages**](RequestItemStages.md) | The stages configuration for this request | [optional]
-**reviewer_stages** | [**List[RequestReviewerStages]**](RequestReviewerStages.md) | The configured reviewer stages for every item in this request | [optional]
+**reviewer_stages** | [**RequestReviewerStages**](RequestReviewerStages.md) | | [optional]
## Example
diff --git a/docs/RequestComment.md b/docs/RequestComment.md
index a143ecc..c8d900c 100644
--- a/docs/RequestComment.md
+++ b/docs/RequestComment.md
@@ -7,8 +7,8 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**created_at** | **datetime** | The date and time the comment was created. |
-**request_id** | **str** | The unique identifier of the request the comment is associated with. |
-**user_id** | **str** | The unique identifier of the user who made the comment. |
+**request_id** | **UUID** | The unique identifier of the request the comment is associated with. |
+**user_id** | **UUID** | The unique identifier of the user who made the comment. |
**user_full_name** | **str** | The user's full name. | [optional]
**user_email** | **str** | The user's email address. | [optional]
**comment** | **str** | The content of the comment. |
diff --git a/docs/RequestConfiguration.md b/docs/RequestConfiguration.md
index abc7642..5af185d 100644
--- a/docs/RequestConfiguration.md
+++ b/docs/RequestConfiguration.md
@@ -14,7 +14,7 @@ Name | Type | Description | Notes
**recommended_duration_minutes** | **int** | The recommended duration for which the resource should be requested (in minutes). -1 represents an indefinite duration. | [optional]
**require_support_ticket** | **bool** | A bool representing whether or not access requests to the resource require an access ticket. |
**extensions_duration_in_minutes** | **int** | The duration for which access can be extended (in minutes). Set to 0 to disable extensions. When > 0, extensions are enabled for the specified duration. | [optional]
-**request_template_id** | **str** | The ID of the associated request template. | [optional]
+**request_template_id** | **UUID** | The ID of the associated request template. | [optional]
**reviewer_stages** | [**List[ReviewerStage]**](ReviewerStage.md) | The list of reviewer stages for the request configuration. | [optional]
**priority** | **int** | The priority of the request configuration. |
diff --git a/docs/RequestReviewer.md b/docs/RequestReviewer.md
index 3619b7f..f3e41ed 100644
--- a/docs/RequestReviewer.md
+++ b/docs/RequestReviewer.md
@@ -6,7 +6,7 @@ A reviewer in a request stage
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**id** | **str** | The unique identifier of the reviewer |
+**id** | **UUID** | The unique identifier of the reviewer |
**full_name** | **str** | The user's full name. | [optional]
**status** | **str** | The status of this reviewer's review |
diff --git a/docs/RequestReviewerStages.md b/docs/RequestReviewerStages.md
index 6abd470..514cf3c 100644
--- a/docs/RequestReviewerStages.md
+++ b/docs/RequestReviewerStages.md
@@ -1,16 +1,11 @@
# RequestReviewerStages
-The stages configuration for a request item
+The configured reviewer stages for every item in this request, or an error message if reviewers could not be loaded
## Properties
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**access_level_name** | **str** | The name of the access level requested. | [optional]
-**access_level_remote_id** | **str** | The ID of the access level requested on the remote system. | [optional]
-**item_name** | **str** | The name of the requested item |
-**item_id** | **str** | The ID of the resource requested. |
-**stages** | [**List[RequestStage]**](RequestStage.md) | The stages of review for this request |
## Example
diff --git a/docs/RequestedItem.md b/docs/RequestedItem.md
index 48082e7..0537405 100644
--- a/docs/RequestedItem.md
+++ b/docs/RequestedItem.md
@@ -6,8 +6,8 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**resource_id** | **str** | The ID of the resource requested. | [optional]
-**group_id** | **str** | The ID of the group requested. | [optional]
+**resource_id** | **UUID** | The ID of the resource requested. | [optional]
+**group_id** | **UUID** | The ID of the group requested. | [optional]
**access_level_name** | **str** | The name of the access level requested. | [optional]
**access_level_remote_id** | **str** | The ID of the access level requested on the remote system. | [optional]
**name** | **str** | The name of the target. | [optional]
diff --git a/docs/RequestsApi.md b/docs/RequestsApi.md
index 9218a5f..f71ed45 100644
--- a/docs/RequestsApi.md
+++ b/docs/RequestsApi.md
@@ -17,8 +17,6 @@ Method | HTTP request | Description
# **approve_request**
> ApproveRequest200Response approve_request(id, approve_request_request)
-
-
Approve an access request
### Example
@@ -54,7 +52,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.RequestsApi(api_client)
- id = 'id_example' # str | The ID of the request to approve
+ id = UUID('38400000-8cf0-11bd-b23e-10b96e4ef00d') # UUID | The ID of the request to approve
approve_request_request = opal_security.ApproveRequestRequest() # ApproveRequestRequest | Approval parameters
try:
@@ -72,7 +70,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **id** | **str**| The ID of the request to approve |
+ **id** | **UUID**| The ID of the request to approve |
**approve_request_request** | [**ApproveRequestRequest**](ApproveRequestRequest.md)| Approval parameters |
### Return type
@@ -99,8 +97,6 @@ Name | Type | Description | Notes
# **create_request**
> CreateRequest200Response create_request(create_request_info)
-
-
Create an access request
### Example
@@ -179,8 +175,6 @@ Name | Type | Description | Notes
# **create_request_comment**
> ApproveRequest200Response create_request_comment(id, create_request_comment_request)
-
-
Comment on an access request
### Example
@@ -216,7 +210,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.RequestsApi(api_client)
- id = 'id_example' # str | The ID of the request to comment on
+ id = UUID('38400000-8cf0-11bd-b23e-10b96e4ef00d') # UUID | The ID of the request to comment on
create_request_comment_request = opal_security.CreateRequestCommentRequest() # CreateRequestCommentRequest | Comment parameters
try:
@@ -234,7 +228,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **id** | **str**| The ID of the request to comment on |
+ **id** | **UUID**| The ID of the request to comment on |
**create_request_comment_request** | [**CreateRequestCommentRequest**](CreateRequestCommentRequest.md)| Comment parameters |
### Return type
@@ -261,8 +255,6 @@ Name | Type | Description | Notes
# **deny_request**
> ApproveRequest200Response deny_request(id, deny_request_request)
-
-
Deny an access request
### Example
@@ -298,7 +290,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.RequestsApi(api_client)
- id = 'id_example' # str | The ID of the request to deny
+ id = UUID('38400000-8cf0-11bd-b23e-10b96e4ef00d') # UUID | The ID of the request to deny
deny_request_request = opal_security.DenyRequestRequest() # DenyRequestRequest | Denial parameters
try:
@@ -316,7 +308,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **id** | **str**| The ID of the request to deny |
+ **id** | **UUID**| The ID of the request to deny |
**deny_request_request** | [**DenyRequestRequest**](DenyRequestRequest.md)| Denial parameters |
### Return type
@@ -379,7 +371,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.RequestsApi(api_client)
- id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the request.
+ id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the request.
try:
# Get request by ID
@@ -397,7 +389,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **id** | **str**| The ID of the request. |
+ **id** | **UUID**| The ID of the request. |
### Return type
@@ -423,8 +415,6 @@ Name | Type | Description | Notes
# **get_request_comments**
> RequestCommentList get_request_comments(id)
-
-
Returns a list of comments for a specific request.
### Example
@@ -458,7 +448,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.RequestsApi(api_client)
- id = 'id_example' # str | The ID of the request to get comments for
+ id = UUID('38400000-8cf0-11bd-b23e-10b96e4ef00d') # UUID | The ID of the request to get comments for
try:
api_response = api_instance.get_request_comments(id)
@@ -475,7 +465,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **id** | **str**| The ID of the request to get comments for |
+ **id** | **UUID**| The ID of the request to get comments for |
### Return type
@@ -539,8 +529,8 @@ with opal_security.ApiClient(configuration) as api_client:
api_instance = opal_security.RequestsApi(api_client)
start_date_filter = '2021-11-01' # str | A start date filter for the events. (optional)
end_date_filter = '2021-11-12' # str | An end date filter for the events. (optional)
- requester_id = '37cb7e41-12ba-46da-92ff-030abe0450b1' # str | Filter requests by their requester ID. (optional)
- target_user_id = '37cb7e41-12ba-46da-92ff-030abe0450b1' # str | Filter requests by their target user ID. (optional)
+ requester_id = UUID('37cb7e41-12ba-46da-92ff-030abe0450b1') # UUID | Filter requests by their requester ID. (optional)
+ target_user_id = UUID('37cb7e41-12ba-46da-92ff-030abe0450b1') # UUID | Filter requests by their target user ID. (optional)
cursor = 'cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw' # str | The pagination cursor value. (optional)
page_size = 200 # int | Number of results to return per page. Default is 200. (optional)
show_pending_only = True # bool | Boolean toggle for if it should only show pending requests. (optional)
@@ -563,8 +553,8 @@ Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**start_date_filter** | **str**| A start date filter for the events. | [optional]
**end_date_filter** | **str**| An end date filter for the events. | [optional]
- **requester_id** | **str**| Filter requests by their requester ID. | [optional]
- **target_user_id** | **str**| Filter requests by their target user ID. | [optional]
+ **requester_id** | **UUID**| Filter requests by their requester ID. | [optional]
+ **target_user_id** | **UUID**| Filter requests by their target user ID. | [optional]
**cursor** | **str**| The pagination cursor value. | [optional]
**page_size** | **int**| Number of results to return per page. Default is 200. | [optional]
**show_pending_only** | **bool**| Boolean toggle for if it should only show pending requests. | [optional]
@@ -635,8 +625,8 @@ with opal_security.ApiClient(configuration) as api_client:
last = 10 # int | Number of results to return before the cursor. Use either first/after or last/before, not both. (optional)
before = 'Y3Vyc29yOnYyOpK5MjAyMS0wMS0wN1QwNzo0MToyNy4xMTlaFjYwZmM2YmJlZjk4YzE1N2ZhNjFhYjk4Nw==' # str | Cursor to fetch results before. Used with 'last' for backward pagination. (optional)
status = opal_security.RequestStatusEnum() # RequestStatusEnum | Filter requests by their status. (optional)
- to = '37cb7e41-12ba-46da-92ff-030abe0450b1' # str | Filter requests assigned to a specific user ID. (optional)
- var_from = '37cb7e41-12ba-46da-92ff-030abe0450b1' # str | Filter requests made by a specific user ID. (optional)
+ to = UUID('37cb7e41-12ba-46da-92ff-030abe0450b1') # UUID | Filter requests assigned to a specific user ID. (optional)
+ var_from = UUID('37cb7e41-12ba-46da-92ff-030abe0450b1') # UUID | Filter requests made by a specific user ID. (optional)
try:
# Get requests via Relay
@@ -659,8 +649,8 @@ Name | Type | Description | Notes
**last** | **int**| Number of results to return before the cursor. Use either first/after or last/before, not both. | [optional]
**before** | **str**| Cursor to fetch results before. Used with 'last' for backward pagination. | [optional]
**status** | [**RequestStatusEnum**](.md)| Filter requests by their status. | [optional]
- **to** | **str**| Filter requests assigned to a specific user ID. | [optional]
- **var_from** | **str**| Filter requests made by a specific user ID. | [optional]
+ **to** | **UUID**| Filter requests assigned to a specific user ID. | [optional]
+ **var_from** | **UUID**| Filter requests made by a specific user ID. | [optional]
### Return type
diff --git a/docs/Resource.md b/docs/Resource.md
index dfc9515..f87a8d0 100644
--- a/docs/Resource.md
+++ b/docs/Resource.md
@@ -6,11 +6,11 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**resource_id** | **str** | The ID of the resource. |
-**app_id** | **str** | The ID of the app. | [optional]
+**resource_id** | **UUID** | The ID of the resource. |
+**app_id** | **UUID** | The ID of the app. | [optional]
**name** | **str** | The name of the resource. | [optional]
**description** | **str** | A description of the resource. | [optional]
-**admin_owner_id** | **str** | The ID of the owner of the resource. | [optional]
+**admin_owner_id** | **UUID** | The ID of the owner of the resource. | [optional]
**remote_resource_id** | **str** | The ID of the resource on the remote system. | [optional]
**remote_resource_name** | **str** | The name of the resource on the remote system. | [optional]
**resource_type** | [**ResourceTypeEnum**](ResourceTypeEnum.md) | | [optional]
@@ -23,10 +23,10 @@ Name | Type | Description | Notes
**require_mfa_to_request** | **bool** | A bool representing whether or not to require MFA for requesting access to this resource. | [optional]
**require_mfa_to_connect** | **bool** | A bool representing whether or not to require MFA to connect to this resource. | [optional]
**auto_approval** | **bool** | A bool representing whether or not to automatically approve requests to this resource. | [optional]
-**request_template_id** | **str** | The ID of the associated request template. | [optional]
+**request_template_id** | **UUID** | The ID of the associated request template. | [optional]
**is_requestable** | **bool** | A bool representing whether or not to allow access requests to this resource. | [optional]
-**parent_resource_id** | **str** | The ID of the parent resource. | [optional]
-**configuration_template_id** | **str** | The ID of the associated configuration template. | [optional]
+**parent_resource_id** | **UUID** | The ID of the parent resource. | [optional]
+**configuration_template_id** | **UUID** | The ID of the associated configuration template. | [optional]
**request_configurations** | [**List[RequestConfiguration]**](RequestConfiguration.md) | A list of configurations for requests to this resource. | [optional]
**request_configuration_list** | [**List[RequestConfiguration]**](RequestConfiguration.md) | A list of configurations for requests to this resource. Deprecated in favor of `request_configurations`. | [optional]
**ticket_propagation** | [**TicketPropagationConfiguration**](TicketPropagationConfiguration.md) | | [optional]
@@ -35,8 +35,8 @@ Name | Type | Description | Notes
**risk_sensitivity_override** | [**RiskSensitivityEnum**](RiskSensitivityEnum.md) | | [optional]
**metadata** | **str** | JSON metadata about the remote resource. Only set for items linked to remote systems. See [this guide](https://docs.opal.dev/reference/end-system-objects) for details. | [optional]
**remote_info** | [**ResourceRemoteInfo**](ResourceRemoteInfo.md) | | [optional]
-**ancestor_resource_ids** | **List[str]** | List of resource IDs that are ancestors of this resource. | [optional]
-**descendant_resource_ids** | **List[str]** | List of resource IDs that are descendants of this resource. | [optional]
+**ancestor_resource_ids** | **List[UUID]** | List of resource IDs that are ancestors of this resource. | [optional]
+**descendant_resource_ids** | **List[UUID]** | List of resource IDs that are descendants of this resource. | [optional]
**last_successful_sync** | [**SyncTask**](SyncTask.md) | Information about the last successful sync of this resource. | [optional] [readonly]
## Example
diff --git a/docs/ResourceAccessUser.md b/docs/ResourceAccessUser.md
index 4b2e9e4..6277592 100644
--- a/docs/ResourceAccessUser.md
+++ b/docs/ResourceAccessUser.md
@@ -6,8 +6,10 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**resource_id** | **str** | The ID of the resource. |
-**user_id** | **str** | The ID of the user. |
+**resource_id** | **UUID** | The ID of the resource. |
+**resource_name** | **str** | The name of the resource. | [optional]
+**description** | **str** | The description of the resource. | [optional]
+**user_id** | **UUID** | The ID of the user. |
**access_level** | [**ResourceAccessLevel**](ResourceAccessLevel.md) | |
**full_name** | **str** | The user's full name. |
**email** | **str** | The user's email. |
diff --git a/docs/ResourceNHI.md b/docs/ResourceNHI.md
index f9b5ad9..2e45342 100644
--- a/docs/ResourceNHI.md
+++ b/docs/ResourceNHI.md
@@ -6,8 +6,8 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**resource_id** | **str** | The ID of the resource. |
-**non_human_identity_id** | **str** | The resource ID of the non-human identity. |
+**resource_id** | **UUID** | The ID of the resource. |
+**non_human_identity_id** | **UUID** | The resource ID of the non-human identity. |
**access_level** | [**ResourceAccessLevel**](ResourceAccessLevel.md) | | [optional]
**expiration_date** | **datetime** | The day and time the non-human identity's access will expire. | [optional]
diff --git a/docs/ResourceRemoteInfo.md b/docs/ResourceRemoteInfo.md
index fbc83a4..466ce2c 100644
--- a/docs/ResourceRemoteInfo.md
+++ b/docs/ResourceRemoteInfo.md
@@ -6,6 +6,7 @@ Information that defines the remote resource. This replaces the deprecated remot
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
+**databricks_account_service_principal** | [**ResourceRemoteInfoDatabricksAccountServicePrincipal**](ResourceRemoteInfoDatabricksAccountServicePrincipal.md) | | [optional]
**azure_subscription** | [**ResourceRemoteInfoAzureSubscription**](ResourceRemoteInfoAzureSubscription.md) | | [optional]
**azure_resource_group** | [**ResourceRemoteInfoAzureResourceGroup**](ResourceRemoteInfoAzureResourceGroup.md) | | [optional]
**azure_management_group** | [**ResourceRemoteInfoAzureManagementGroup**](ResourceRemoteInfoAzureManagementGroup.md) | | [optional]
@@ -24,6 +25,7 @@ Name | Type | Description | Notes
**aws_permission_set** | [**ResourceRemoteInfoAwsPermissionSet**](ResourceRemoteInfoAwsPermissionSet.md) | | [optional]
**aws_iam_role** | [**ResourceRemoteInfoAwsIamRole**](ResourceRemoteInfoAwsIamRole.md) | | [optional]
**aws_ec2_instance** | [**ResourceRemoteInfoAwsEc2Instance**](ResourceRemoteInfoAwsEc2Instance.md) | | [optional]
+**aws_rds_cluster** | [**ResourceRemoteInfoAwsRdsCluster**](ResourceRemoteInfoAwsRdsCluster.md) | | [optional]
**aws_rds_instance** | [**ResourceRemoteInfoAwsRdsInstance**](ResourceRemoteInfoAwsRdsInstance.md) | | [optional]
**aws_eks_cluster** | [**ResourceRemoteInfoAwsEksCluster**](ResourceRemoteInfoAwsEksCluster.md) | | [optional]
**custom_connector** | [**ResourceRemoteInfoCustomConnector**](ResourceRemoteInfoCustomConnector.md) | | [optional]
@@ -45,7 +47,13 @@ Name | Type | Description | Notes
**okta_app** | [**ResourceRemoteInfoOktaApp**](ResourceRemoteInfoOktaApp.md) | | [optional]
**okta_standard_role** | [**ResourceRemoteInfoOktaStandardRole**](ResourceRemoteInfoOktaStandardRole.md) | | [optional]
**okta_custom_role** | [**ResourceRemoteInfoOktaCustomRole**](ResourceRemoteInfoOktaCustomRole.md) | | [optional]
+**snowflake_database** | [**ResourceRemoteInfoSnowflakeDatabase**](ResourceRemoteInfoSnowflakeDatabase.md) | | [optional]
+**snowflake_schema** | [**ResourceRemoteInfoSnowflakeSchema**](ResourceRemoteInfoSnowflakeSchema.md) | | [optional]
+**snowflake_table** | [**ResourceRemoteInfoSnowflakeTable**](ResourceRemoteInfoSnowflakeTable.md) | | [optional]
+**ilevel_advanced_role** | [**ResourceRemoteInfoIlevelAdvancedRole**](ResourceRemoteInfoIlevelAdvancedRole.md) | | [optional]
+**tailscale_ssh** | [**ResourceRemoteInfoTailscaleSsh**](ResourceRemoteInfoTailscaleSsh.md) | | [optional]
**pagerduty_role** | [**ResourceRemoteInfoPagerdutyRole**](ResourceRemoteInfoPagerdutyRole.md) | | [optional]
+**workday_role** | [**ResourceRemoteInfoWorkdayRole**](ResourceRemoteInfoWorkdayRole.md) | | [optional]
**salesforce_permission_set** | [**ResourceRemoteInfoSalesforcePermissionSet**](ResourceRemoteInfoSalesforcePermissionSet.md) | | [optional]
**salesforce_profile** | [**ResourceRemoteInfoSalesforceProfile**](ResourceRemoteInfoSalesforceProfile.md) | | [optional]
**salesforce_role** | [**ResourceRemoteInfoSalesforceRole**](ResourceRemoteInfoSalesforceRole.md) | | [optional]
@@ -57,6 +65,8 @@ Name | Type | Description | Notes
**openai_platform_service_account** | [**ResourceRemoteInfoOpenaiPlatformServiceAccount**](ResourceRemoteInfoOpenaiPlatformServiceAccount.md) | | [optional]
**anthropic_workspace** | [**ResourceRemoteInfoAnthropicWorkspace**](ResourceRemoteInfoAnthropicWorkspace.md) | | [optional]
**oracle_fusion_role** | [**ResourceRemoteInfoOracleFusionRole**](ResourceRemoteInfoOracleFusionRole.md) | | [optional]
+**devin_organization** | [**ResourceRemoteInfoDevinOrganization**](ResourceRemoteInfoDevinOrganization.md) | | [optional]
+**devin_role** | [**ResourceRemoteInfoDevinRole**](ResourceRemoteInfoDevinRole.md) | | [optional]
## Example
diff --git a/docs/ResourceRemoteInfoAwsRdsCluster.md b/docs/ResourceRemoteInfoAwsRdsCluster.md
new file mode 100644
index 0000000..11366e5
--- /dev/null
+++ b/docs/ResourceRemoteInfoAwsRdsCluster.md
@@ -0,0 +1,35 @@
+# ResourceRemoteInfoAwsRdsCluster
+
+Remote info for AWS RDS cluster.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**cluster_id** | **str** | The clusterId of the RDS cluster. |
+**region** | **str** | The region of the RDS cluster. |
+**resource_id** | **str** | The resourceId of the RDS cluster. |
+**account_id** | **str** | The id of the AWS account. Required for AWS Organizations. |
+**database_name** | **str** | The name of the database in the RDS cluster. This can be the value of the tag `opal:database-name` or the database name. |
+**engine** | [**RDSEngineEnum**](RDSEngineEnum.md) | |
+
+## Example
+
+```python
+from opal_security.models.resource_remote_info_aws_rds_cluster import ResourceRemoteInfoAwsRdsCluster
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ResourceRemoteInfoAwsRdsCluster from a JSON string
+resource_remote_info_aws_rds_cluster_instance = ResourceRemoteInfoAwsRdsCluster.from_json(json)
+# print the JSON string representation of the object
+print(ResourceRemoteInfoAwsRdsCluster.to_json())
+
+# convert the object into a dict
+resource_remote_info_aws_rds_cluster_dict = resource_remote_info_aws_rds_cluster_instance.to_dict()
+# create an instance of ResourceRemoteInfoAwsRdsCluster from a dict
+resource_remote_info_aws_rds_cluster_from_dict = ResourceRemoteInfoAwsRdsCluster.from_dict(resource_remote_info_aws_rds_cluster_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/ResourceRemoteInfoDatabricksAccountServicePrincipal.md b/docs/ResourceRemoteInfoDatabricksAccountServicePrincipal.md
new file mode 100644
index 0000000..a614f9c
--- /dev/null
+++ b/docs/ResourceRemoteInfoDatabricksAccountServicePrincipal.md
@@ -0,0 +1,31 @@
+# ResourceRemoteInfoDatabricksAccountServicePrincipal
+
+Remote info for Databricks account service principal.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**application_id** | **str** | The application ID of the service principal. |
+**resource_id** | **str** | The resource ID of the service principal. |
+
+## Example
+
+```python
+from opal_security.models.resource_remote_info_databricks_account_service_principal import ResourceRemoteInfoDatabricksAccountServicePrincipal
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ResourceRemoteInfoDatabricksAccountServicePrincipal from a JSON string
+resource_remote_info_databricks_account_service_principal_instance = ResourceRemoteInfoDatabricksAccountServicePrincipal.from_json(json)
+# print the JSON string representation of the object
+print(ResourceRemoteInfoDatabricksAccountServicePrincipal.to_json())
+
+# convert the object into a dict
+resource_remote_info_databricks_account_service_principal_dict = resource_remote_info_databricks_account_service_principal_instance.to_dict()
+# create an instance of ResourceRemoteInfoDatabricksAccountServicePrincipal from a dict
+resource_remote_info_databricks_account_service_principal_from_dict = ResourceRemoteInfoDatabricksAccountServicePrincipal.from_dict(resource_remote_info_databricks_account_service_principal_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/ResourceRemoteInfoDevinOrganization.md b/docs/ResourceRemoteInfoDevinOrganization.md
new file mode 100644
index 0000000..83295f6
--- /dev/null
+++ b/docs/ResourceRemoteInfoDevinOrganization.md
@@ -0,0 +1,30 @@
+# ResourceRemoteInfoDevinOrganization
+
+Remote info for Devin organization.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**org_id** | **str** | The id of the organization. |
+
+## Example
+
+```python
+from opal_security.models.resource_remote_info_devin_organization import ResourceRemoteInfoDevinOrganization
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ResourceRemoteInfoDevinOrganization from a JSON string
+resource_remote_info_devin_organization_instance = ResourceRemoteInfoDevinOrganization.from_json(json)
+# print the JSON string representation of the object
+print(ResourceRemoteInfoDevinOrganization.to_json())
+
+# convert the object into a dict
+resource_remote_info_devin_organization_dict = resource_remote_info_devin_organization_instance.to_dict()
+# create an instance of ResourceRemoteInfoDevinOrganization from a dict
+resource_remote_info_devin_organization_from_dict = ResourceRemoteInfoDevinOrganization.from_dict(resource_remote_info_devin_organization_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/ResourceRemoteInfoDevinRole.md b/docs/ResourceRemoteInfoDevinRole.md
new file mode 100644
index 0000000..bb5adf8
--- /dev/null
+++ b/docs/ResourceRemoteInfoDevinRole.md
@@ -0,0 +1,30 @@
+# ResourceRemoteInfoDevinRole
+
+Remote info for Devin role.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**role_id** | **str** | The id of the role. |
+
+## Example
+
+```python
+from opal_security.models.resource_remote_info_devin_role import ResourceRemoteInfoDevinRole
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ResourceRemoteInfoDevinRole from a JSON string
+resource_remote_info_devin_role_instance = ResourceRemoteInfoDevinRole.from_json(json)
+# print the JSON string representation of the object
+print(ResourceRemoteInfoDevinRole.to_json())
+
+# convert the object into a dict
+resource_remote_info_devin_role_dict = resource_remote_info_devin_role_instance.to_dict()
+# create an instance of ResourceRemoteInfoDevinRole from a dict
+resource_remote_info_devin_role_from_dict = ResourceRemoteInfoDevinRole.from_dict(resource_remote_info_devin_role_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/ResourceRemoteInfoIlevelAdvancedRole.md b/docs/ResourceRemoteInfoIlevelAdvancedRole.md
new file mode 100644
index 0000000..b73dd23
--- /dev/null
+++ b/docs/ResourceRemoteInfoIlevelAdvancedRole.md
@@ -0,0 +1,30 @@
+# ResourceRemoteInfoIlevelAdvancedRole
+
+Remote info for iLevel Advanced role.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**role_name** | **str** | The name of the role. |
+
+## Example
+
+```python
+from opal_security.models.resource_remote_info_ilevel_advanced_role import ResourceRemoteInfoIlevelAdvancedRole
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ResourceRemoteInfoIlevelAdvancedRole from a JSON string
+resource_remote_info_ilevel_advanced_role_instance = ResourceRemoteInfoIlevelAdvancedRole.from_json(json)
+# print the JSON string representation of the object
+print(ResourceRemoteInfoIlevelAdvancedRole.to_json())
+
+# convert the object into a dict
+resource_remote_info_ilevel_advanced_role_dict = resource_remote_info_ilevel_advanced_role_instance.to_dict()
+# create an instance of ResourceRemoteInfoIlevelAdvancedRole from a dict
+resource_remote_info_ilevel_advanced_role_from_dict = ResourceRemoteInfoIlevelAdvancedRole.from_dict(resource_remote_info_ilevel_advanced_role_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/ResourceRemoteInfoSnowflakeDatabase.md b/docs/ResourceRemoteInfoSnowflakeDatabase.md
new file mode 100644
index 0000000..44198b1
--- /dev/null
+++ b/docs/ResourceRemoteInfoSnowflakeDatabase.md
@@ -0,0 +1,30 @@
+# ResourceRemoteInfoSnowflakeDatabase
+
+Remote info for Snowflake database.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**database_name** | **str** | The name of the database. |
+
+## Example
+
+```python
+from opal_security.models.resource_remote_info_snowflake_database import ResourceRemoteInfoSnowflakeDatabase
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ResourceRemoteInfoSnowflakeDatabase from a JSON string
+resource_remote_info_snowflake_database_instance = ResourceRemoteInfoSnowflakeDatabase.from_json(json)
+# print the JSON string representation of the object
+print(ResourceRemoteInfoSnowflakeDatabase.to_json())
+
+# convert the object into a dict
+resource_remote_info_snowflake_database_dict = resource_remote_info_snowflake_database_instance.to_dict()
+# create an instance of ResourceRemoteInfoSnowflakeDatabase from a dict
+resource_remote_info_snowflake_database_from_dict = ResourceRemoteInfoSnowflakeDatabase.from_dict(resource_remote_info_snowflake_database_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/ResourceRemoteInfoSnowflakeSchema.md b/docs/ResourceRemoteInfoSnowflakeSchema.md
new file mode 100644
index 0000000..4d19e7c
--- /dev/null
+++ b/docs/ResourceRemoteInfoSnowflakeSchema.md
@@ -0,0 +1,31 @@
+# ResourceRemoteInfoSnowflakeSchema
+
+Remote info for Snowflake schema.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**database_name** | **str** | The name of the database the schema is in. |
+**schema_name** | **str** | The name of the schema. |
+
+## Example
+
+```python
+from opal_security.models.resource_remote_info_snowflake_schema import ResourceRemoteInfoSnowflakeSchema
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ResourceRemoteInfoSnowflakeSchema from a JSON string
+resource_remote_info_snowflake_schema_instance = ResourceRemoteInfoSnowflakeSchema.from_json(json)
+# print the JSON string representation of the object
+print(ResourceRemoteInfoSnowflakeSchema.to_json())
+
+# convert the object into a dict
+resource_remote_info_snowflake_schema_dict = resource_remote_info_snowflake_schema_instance.to_dict()
+# create an instance of ResourceRemoteInfoSnowflakeSchema from a dict
+resource_remote_info_snowflake_schema_from_dict = ResourceRemoteInfoSnowflakeSchema.from_dict(resource_remote_info_snowflake_schema_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/ResourceRemoteInfoSnowflakeTable.md b/docs/ResourceRemoteInfoSnowflakeTable.md
new file mode 100644
index 0000000..daf446b
--- /dev/null
+++ b/docs/ResourceRemoteInfoSnowflakeTable.md
@@ -0,0 +1,32 @@
+# ResourceRemoteInfoSnowflakeTable
+
+Remote info for Snowflake table.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**database_name** | **str** | The name of the database the table is in. |
+**schema_name** | **str** | The name of the schema the table is in. |
+**table_name** | **str** | The name of the table. |
+
+## Example
+
+```python
+from opal_security.models.resource_remote_info_snowflake_table import ResourceRemoteInfoSnowflakeTable
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ResourceRemoteInfoSnowflakeTable from a JSON string
+resource_remote_info_snowflake_table_instance = ResourceRemoteInfoSnowflakeTable.from_json(json)
+# print the JSON string representation of the object
+print(ResourceRemoteInfoSnowflakeTable.to_json())
+
+# convert the object into a dict
+resource_remote_info_snowflake_table_dict = resource_remote_info_snowflake_table_instance.to_dict()
+# create an instance of ResourceRemoteInfoSnowflakeTable from a dict
+resource_remote_info_snowflake_table_from_dict = ResourceRemoteInfoSnowflakeTable.from_dict(resource_remote_info_snowflake_table_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/ResourceRemoteInfoTailscaleSsh.md b/docs/ResourceRemoteInfoTailscaleSsh.md
new file mode 100644
index 0000000..bb191ba
--- /dev/null
+++ b/docs/ResourceRemoteInfoTailscaleSsh.md
@@ -0,0 +1,30 @@
+# ResourceRemoteInfoTailscaleSsh
+
+Remote info for Tailscale SSH tag.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**tag_name** | **str** | The name of the tag. |
+
+## Example
+
+```python
+from opal_security.models.resource_remote_info_tailscale_ssh import ResourceRemoteInfoTailscaleSsh
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ResourceRemoteInfoTailscaleSsh from a JSON string
+resource_remote_info_tailscale_ssh_instance = ResourceRemoteInfoTailscaleSsh.from_json(json)
+# print the JSON string representation of the object
+print(ResourceRemoteInfoTailscaleSsh.to_json())
+
+# convert the object into a dict
+resource_remote_info_tailscale_ssh_dict = resource_remote_info_tailscale_ssh_instance.to_dict()
+# create an instance of ResourceRemoteInfoTailscaleSsh from a dict
+resource_remote_info_tailscale_ssh_from_dict = ResourceRemoteInfoTailscaleSsh.from_dict(resource_remote_info_tailscale_ssh_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/ResourceRemoteInfoWorkdayRole.md b/docs/ResourceRemoteInfoWorkdayRole.md
new file mode 100644
index 0000000..916cef8
--- /dev/null
+++ b/docs/ResourceRemoteInfoWorkdayRole.md
@@ -0,0 +1,30 @@
+# ResourceRemoteInfoWorkdayRole
+
+Remote info for Workday role.
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**role_id** | **str** | The id of the role. |
+
+## Example
+
+```python
+from opal_security.models.resource_remote_info_workday_role import ResourceRemoteInfoWorkdayRole
+
+# TODO update the JSON string below
+json = "{}"
+# create an instance of ResourceRemoteInfoWorkdayRole from a JSON string
+resource_remote_info_workday_role_instance = ResourceRemoteInfoWorkdayRole.from_json(json)
+# print the JSON string representation of the object
+print(ResourceRemoteInfoWorkdayRole.to_json())
+
+# convert the object into a dict
+resource_remote_info_workday_role_dict = resource_remote_info_workday_role_instance.to_dict()
+# create an instance of ResourceRemoteInfoWorkdayRole from a dict
+resource_remote_info_workday_role_from_dict = ResourceRemoteInfoWorkdayRole.from_dict(resource_remote_info_workday_role_dict)
+```
+[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
+
+
diff --git a/docs/ResourceTypeEnum.md b/docs/ResourceTypeEnum.md
index d0bb4eb..e9dce4f 100644
--- a/docs/ResourceTypeEnum.md
+++ b/docs/ResourceTypeEnum.md
@@ -142,6 +142,16 @@ The type of the resource.
* `ORACLE_FUSION_ROLE` (value: `'ORACLE_FUSION_ROLE'`)
+* `DEVIN_ORGANIZATION` (value: `'DEVIN_ORGANIZATION'`)
+
+* `DEVIN_ROLE` (value: `'DEVIN_ROLE'`)
+
+* `VAULT_SECRET` (value: `'VAULT_SECRET'`)
+
+* `VAULT_POLICY` (value: `'VAULT_POLICY'`)
+
+* `VAULT_OIDC_ROLE` (value: `'VAULT_OIDC_ROLE'`)
+
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/docs/ResourceUser.md b/docs/ResourceUser.md
index 48bc388..0c4bab3 100644
--- a/docs/ResourceUser.md
+++ b/docs/ResourceUser.md
@@ -6,8 +6,8 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**resource_id** | **str** | The ID of the resource. |
-**user_id** | **str** | The ID of the user. |
+**resource_id** | **UUID** | The ID of the resource. |
+**user_id** | **UUID** | The ID of the user. |
**access_level** | [**ResourceAccessLevel**](ResourceAccessLevel.md) | |
**full_name** | **str** | The user's full name. |
**email** | **str** | The user's email. |
diff --git a/docs/ResourceUserAccessStatus.md b/docs/ResourceUserAccessStatus.md
index f1ef965..31c9bc0 100644
--- a/docs/ResourceUserAccessStatus.md
+++ b/docs/ResourceUserAccessStatus.md
@@ -6,8 +6,8 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**resource_id** | **str** | The ID of the resource. |
-**user_id** | **str** | The ID of the user. |
+**resource_id** | **UUID** | The ID of the resource. |
+**user_id** | **UUID** | The ID of the user. |
**access_level** | [**ResourceAccessLevel**](ResourceAccessLevel.md) | | [optional]
**status** | [**ResourceUserAccessStatusEnum**](ResourceUserAccessStatusEnum.md) | |
**expiration_date** | **datetime** | The day and time the user's access will expire. | [optional]
diff --git a/docs/ResourceWithAccessLevel.md b/docs/ResourceWithAccessLevel.md
index 756ed39..07daea6 100644
--- a/docs/ResourceWithAccessLevel.md
+++ b/docs/ResourceWithAccessLevel.md
@@ -6,7 +6,7 @@ Information about a resource and corresponding access level
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**resource_id** | **str** | The ID of the resource. |
+**resource_id** | **UUID** | The ID of the resource. |
**access_level_remote_id** | **str** | The ID of the resource. | [optional]
## Example
diff --git a/docs/ResourcesApi.md b/docs/ResourcesApi.md
index a73976d..0d1d587 100644
--- a/docs/ResourcesApi.md
+++ b/docs/ResourcesApi.md
@@ -11,6 +11,7 @@ Method | HTTP request | Description
[**delete_resource_nhi**](ResourcesApi.md#delete_resource_nhi) | **DELETE** /resources/{resource_id}/non-human-identities/{non_human_identity_id} |
[**delete_resource_user**](ResourcesApi.md#delete_resource_user) | **DELETE** /resources/{resource_id}/users/{user_id} |
[**get_resource**](ResourcesApi.md#get_resource) | **GET** /resources/{resource_id} | Get resource by ID
+[**get_resource_groups**](ResourcesApi.md#get_resource_groups) | **GET** /resources/{resource_id}/groups |
[**get_resource_message_channels**](ResourcesApi.md#get_resource_message_channels) | **GET** /resources/{resource_id}/message-channels |
[**get_resource_nhis**](ResourcesApi.md#get_resource_nhis) | **GET** /resources/{resource_id}/non-human-identities |
[**get_resource_reviewer_stages**](ResourcesApi.md#get_resource_reviewer_stages) | **GET** /resources/{resource_id}/reviewer-stages |
@@ -35,8 +36,6 @@ Method | HTTP request | Description
# **add_resource_nhi**
> ResourceNHI add_resource_nhi(resource_id, non_human_identity_id, add_resource_nhi_request=add_resource_nhi_request)
-
-
Gives a non-human identity access to this resource.
### Example
@@ -72,8 +71,8 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.ResourcesApi(api_client)
- resource_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the resource.
- non_human_identity_id = 'f92aa855-cea9-4814-b9d8-f2a60d3e4a06' # str | The resource ID of the non-human identity to add.
+ resource_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the resource.
+ non_human_identity_id = UUID('f92aa855-cea9-4814-b9d8-f2a60d3e4a06') # UUID | The resource ID of the non-human identity to add.
add_resource_nhi_request = opal_security.AddResourceNhiRequest() # AddResourceNhiRequest | (optional)
try:
@@ -91,8 +90,8 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **resource_id** | **str**| The ID of the resource. |
- **non_human_identity_id** | **str**| The resource ID of the non-human identity to add. |
+ **resource_id** | **UUID**| The ID of the resource. |
+ **non_human_identity_id** | **UUID**| The resource ID of the non-human identity to add. |
**add_resource_nhi_request** | [**AddResourceNhiRequest**](AddResourceNhiRequest.md)| | [optional]
### Return type
@@ -119,8 +118,6 @@ Name | Type | Description | Notes
# **add_resource_user**
> ResourceUser add_resource_user(resource_id, user_id, duration_minutes=duration_minutes, access_level_remote_id=access_level_remote_id, add_resource_user_request=add_resource_user_request)
-
-
Adds a user to this resource.
### Example
@@ -156,8 +153,8 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.ResourcesApi(api_client)
- resource_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the resource.
- user_id = 'f92aa855-cea9-4814-b9d8-f2a60d3e4a06' # str | The ID of the user to add.
+ resource_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the resource.
+ user_id = UUID('f92aa855-cea9-4814-b9d8-f2a60d3e4a06') # UUID | The ID of the user to add.
duration_minutes = 60 # int | The duration for which the resource can be accessed (in minutes). Use 0 to set to indefinite. (optional)
access_level_remote_id = 'arn:aws:iam::590304332660:role/AdministratorAccess' # str | The remote ID of the access level to grant to this user. If omitted, the default access level remote ID value (empty string) is used. (optional)
add_resource_user_request = opal_security.AddResourceUserRequest() # AddResourceUserRequest | (optional)
@@ -177,8 +174,8 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **resource_id** | **str**| The ID of the resource. |
- **user_id** | **str**| The ID of the user to add. |
+ **resource_id** | **UUID**| The ID of the resource. |
+ **user_id** | **UUID**| The ID of the user to add. |
**duration_minutes** | **int**| The duration for which the resource can be accessed (in minutes). Use 0 to set to indefinite. | [optional]
**access_level_remote_id** | **str**| The remote ID of the access level to grant to this user. If omitted, the default access level remote ID value (empty string) is used. | [optional]
**add_resource_user_request** | [**AddResourceUserRequest**](AddResourceUserRequest.md)| | [optional]
@@ -207,8 +204,6 @@ Name | Type | Description | Notes
# **create_resource**
> Resource create_resource(create_resource_info)
-
-
Creates a resource. See [here](https://docs.opal.dev/reference/end-system-objects) for details about importing resources.
### Example
@@ -287,8 +282,6 @@ Name | Type | Description | Notes
# **delete_resource**
> delete_resource(resource_id)
-
-
Deletes a resource.
### Example
@@ -322,7 +315,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.ResourcesApi(api_client)
- resource_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the resource.
+ resource_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the resource.
try:
api_instance.delete_resource(resource_id)
@@ -337,7 +330,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **resource_id** | **str**| The ID of the resource. |
+ **resource_id** | **UUID**| The ID of the resource. |
### Return type
@@ -363,8 +356,6 @@ void (empty response body)
# **delete_resource_nhi**
> delete_resource_nhi(resource_id, non_human_identity_id, access_level_remote_id=access_level_remote_id)
-
-
Removes a non-human identity's direct access from this resource.
### Example
@@ -398,8 +389,8 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.ResourcesApi(api_client)
- resource_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the resource.
- non_human_identity_id = 'f92aa855-cea9-4814-b9d8-f2a60d3e4a06' # str | The resource ID of the non-human identity to remove from this resource.
+ resource_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the resource.
+ non_human_identity_id = UUID('f92aa855-cea9-4814-b9d8-f2a60d3e4a06') # UUID | The resource ID of the non-human identity to remove from this resource.
access_level_remote_id = 'roles/cloudsql.instanceUser' # str | The remote ID of the access level for which this non-human identity has direct access. If omitted, the default access level remote ID value (empty string) is assumed. (optional)
try:
@@ -415,8 +406,8 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **resource_id** | **str**| The ID of the resource. |
- **non_human_identity_id** | **str**| The resource ID of the non-human identity to remove from this resource. |
+ **resource_id** | **UUID**| The ID of the resource. |
+ **non_human_identity_id** | **UUID**| The resource ID of the non-human identity to remove from this resource. |
**access_level_remote_id** | **str**| The remote ID of the access level for which this non-human identity has direct access. If omitted, the default access level remote ID value (empty string) is assumed. | [optional]
### Return type
@@ -443,8 +434,6 @@ void (empty response body)
# **delete_resource_user**
> delete_resource_user(resource_id, user_id, access_level_remote_id=access_level_remote_id)
-
-
Removes a user's direct access from this resource.
### Example
@@ -478,8 +467,8 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.ResourcesApi(api_client)
- resource_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the resource.
- user_id = 'f92aa855-cea9-4814-b9d8-f2a60d3e4a06' # str | The ID of a user to remove from this resource.
+ resource_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the resource.
+ user_id = UUID('f92aa855-cea9-4814-b9d8-f2a60d3e4a06') # UUID | The ID of a user to remove from this resource.
access_level_remote_id = 'arn:aws:iam::590304332660:role/AdministratorAccess' # str | The remote ID of the access level for which this user has direct access. If omitted, the default access level remote ID value (empty string) is assumed. (optional)
try:
@@ -495,8 +484,8 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **resource_id** | **str**| The ID of the resource. |
- **user_id** | **str**| The ID of a user to remove from this resource. |
+ **resource_id** | **UUID**| The ID of the resource. |
+ **user_id** | **UUID**| The ID of a user to remove from this resource. |
**access_level_remote_id** | **str**| The remote ID of the access level for which this user has direct access. If omitted, the default access level remote ID value (empty string) is assumed. | [optional]
### Return type
@@ -559,7 +548,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.ResourcesApi(api_client)
- resource_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the resource.
+ resource_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the resource.
try:
# Get resource by ID
@@ -577,7 +566,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **resource_id** | **str**| The ID of the resource. |
+ **resource_id** | **UUID**| The ID of the resource. |
### Return type
@@ -600,10 +589,85 @@ Name | Type | Description | Notes
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
-# **get_resource_message_channels**
-> MessageChannelList get_resource_message_channels(resource_id)
+# **get_resource_groups**
+> GroupResourceList get_resource_groups(resource_id)
+
+Returns a list of groups that grant access to the resource
+
+### Example
+
+* Bearer Authentication (BearerAuth):
+
+```python
+import opal_security
+from opal_security.models.group_resource_list import GroupResourceList
+from opal_security.rest import ApiException
+from pprint import pprint
+
+# Defining the host is optional and defaults to https://api.opal.dev/v1
+# See configuration.py for a list of all supported configuration parameters.
+import opal_security as opal
+
+configuration = opal.Configuration(
+ host = "https://api.opal.dev/v1"
+)
+
+# 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 Bearer authorization: BearerAuth
+configuration = opal.Configuration(
+ access_token = os.environ["BEARER_TOKEN"]
+)
+
+# Enter a context with an instance of the API client
+with opal_security.ApiClient(configuration) as api_client:
+ # Create an instance of the API class
+ api_instance = opal_security.ResourcesApi(api_client)
+ resource_id = UUID('1b978423-db0a-4037-a4cf-f79c60cb67b3') # UUID | The ID of the resource that the groups grant access to.
+
+ try:
+ api_response = api_instance.get_resource_groups(resource_id)
+ print("The response of ResourcesApi->get_resource_groups:\n")
+ pprint(api_response)
+ except Exception as e:
+ print("Exception when calling ResourcesApi->get_resource_groups: %s\n" % e)
+```
+
+
+
+### Parameters
+
+
+Name | Type | Description | Notes
+------------- | ------------- | ------------- | -------------
+ **resource_id** | **UUID**| The ID of the resource that the groups grant access to. |
+
+### Return type
+
+[**GroupResourceList**](GroupResourceList.md)
+
+### Authorization
+
+[BearerAuth](../README.md#BearerAuth)
+
+### HTTP request headers
+ - **Content-Type**: Not defined
+ - **Accept**: application/json
+
+### HTTP response details
+
+| Status code | Description | Response headers |
+|-------------|-------------|------------------|
+**200** | The groups that grant access to the resource. | - |
+[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
+
+# **get_resource_message_channels**
+> MessageChannelList get_resource_message_channels(resource_id)
Gets the list of audit message channels attached to a resource.
@@ -639,7 +703,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.ResourcesApi(api_client)
- resource_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the resource.
+ resource_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the resource.
try:
api_response = api_instance.get_resource_message_channels(resource_id)
@@ -656,7 +720,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **resource_id** | **str**| The ID of the resource. |
+ **resource_id** | **UUID**| The ID of the resource. |
### Return type
@@ -682,8 +746,6 @@ Name | Type | Description | Notes
# **get_resource_nhis**
> AccessList get_resource_nhis(resource_id, limit=limit)
-
-
Gets the list of non-human identities with access to this resource.
### Example
@@ -718,7 +780,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.ResourcesApi(api_client)
- resource_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the resource.
+ resource_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the resource.
limit = 200 # int | Limit the number of results returned. (optional)
try:
@@ -736,7 +798,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **resource_id** | **str**| The ID of the resource. |
+ **resource_id** | **UUID**| The ID of the resource. |
**limit** | **int**| Limit the number of results returned. | [optional]
### Return type
@@ -763,8 +825,6 @@ Name | Type | Description | Notes
# **get_resource_reviewer_stages**
> List[ReviewerStage] get_resource_reviewer_stages(resource_id)
-
-
Gets the list reviewer stages for a resource.
### Example
@@ -799,7 +859,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.ResourcesApi(api_client)
- resource_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the resource.
+ resource_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the resource.
try:
api_response = api_instance.get_resource_reviewer_stages(resource_id)
@@ -816,7 +876,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **resource_id** | **str**| The ID of the resource. |
+ **resource_id** | **UUID**| The ID of the resource. |
### Return type
@@ -840,9 +900,7 @@ Name | Type | Description | Notes
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **get_resource_reviewers**
-> List[str] get_resource_reviewers(resource_id)
-
-
+> List[UUID] get_resource_reviewers(resource_id)
Gets the list of owner IDs of the reviewers for a resource.
@@ -877,7 +935,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.ResourcesApi(api_client)
- resource_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the resource.
+ resource_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the resource.
try:
api_response = api_instance.get_resource_reviewers(resource_id)
@@ -894,11 +952,11 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **resource_id** | **str**| The ID of the resource. |
+ **resource_id** | **UUID**| The ID of the resource. |
### Return type
-**List[str]**
+**List[UUID]**
### Authorization
@@ -920,8 +978,6 @@ Name | Type | Description | Notes
# **get_resource_scoped_role_permissions**
> ScopedRolePermissionList get_resource_scoped_role_permissions(resource_id)
-
-
Returns all the scoped role permissions that apply to the given resource. Only OPAL_SCOPED_ROLE resource type supports this field.
### Example
@@ -956,7 +1012,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.ResourcesApi(api_client)
- resource_id = '1b978423-db0a-4037-a4cf-f79c60cb67b3' # str | The ID of the resource whose scoped role permissions belong to.
+ resource_id = UUID('1b978423-db0a-4037-a4cf-f79c60cb67b3') # UUID | The ID of the resource whose scoped role permissions belong to.
try:
api_response = api_instance.get_resource_scoped_role_permissions(resource_id)
@@ -973,7 +1029,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **resource_id** | **str**| The ID of the resource whose scoped role permissions belong to. |
+ **resource_id** | **UUID**| The ID of the resource whose scoped role permissions belong to. |
### Return type
@@ -999,8 +1055,6 @@ Name | Type | Description | Notes
# **get_resource_tags**
> TagsList get_resource_tags(resource_id)
-
-
Returns all tags applied to the resource.
### Example
@@ -1035,7 +1089,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.ResourcesApi(api_client)
- resource_id = '1b978423-db0a-4037-a4cf-f79c60cb67b3' # str | The ID of the resource whose tags to return.
+ resource_id = UUID('1b978423-db0a-4037-a4cf-f79c60cb67b3') # UUID | The ID of the resource whose tags to return.
try:
api_response = api_instance.get_resource_tags(resource_id)
@@ -1052,7 +1106,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **resource_id** | **str**| The ID of the resource whose tags to return. |
+ **resource_id** | **UUID**| The ID of the resource whose tags to return. |
### Return type
@@ -1114,8 +1168,8 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.ResourcesApi(api_client)
- resource_id = '32acc112-21ff-4669-91c2-21e27683eaa1' # str | The ID of the resource.
- user_id = '29827fb8-f2dd-4e80-9576-28e31e9934ac' # str | The ID of the user.
+ resource_id = UUID('32acc112-21ff-4669-91c2-21e27683eaa1') # UUID | The ID of the resource.
+ user_id = UUID('29827fb8-f2dd-4e80-9576-28e31e9934ac') # UUID | The ID of the user.
cursor = 'cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw' # str | The pagination cursor value. (optional)
try:
@@ -1134,8 +1188,8 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **resource_id** | **str**| The ID of the resource. |
- **user_id** | **str**| The ID of the user. |
+ **resource_id** | **UUID**| The ID of the resource. |
+ **user_id** | **UUID**| The ID of the user. |
**cursor** | **str**| The pagination cursor value. | [optional]
### Return type
@@ -1199,7 +1253,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.ResourcesApi(api_client)
- resource_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the resource.
+ resource_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the resource.
limit = 200 # int | Limit the number of results returned. (optional)
try:
@@ -1218,7 +1272,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **resource_id** | **str**| The ID of the resource. |
+ **resource_id** | **UUID**| The ID of the resource. |
**limit** | **int**| Limit the number of results returned. | [optional]
### Return type
@@ -1245,8 +1299,6 @@ Name | Type | Description | Notes
# **get_resource_visibility**
> VisibilityInfo get_resource_visibility(resource_id)
-
-
Gets the visibility of this resource.
### Example
@@ -1281,7 +1333,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.ResourcesApi(api_client)
- resource_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the resource.
+ resource_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the resource.
try:
api_response = api_instance.get_resource_visibility(resource_id)
@@ -1298,7 +1350,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **resource_id** | **str**| The ID of the resource. |
+ **resource_id** | **UUID**| The ID of the resource. |
### Return type
@@ -1364,10 +1416,10 @@ with opal_security.ApiClient(configuration) as api_client:
cursor = 'cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw' # str | The pagination cursor value. (optional)
page_size = 200 # int | Number of results to return per page. Default is 200. (optional)
resource_type_filter = opal_security.ResourceTypeEnum() # ResourceTypeEnum | The resource type to filter by. Required when remote_id is provided. (optional)
- resource_ids = ['[\"4baf8423-db0a-4037-a4cf-f79c60cb67a5\",\"1b978423-db0a-4037-a4cf-f79c60cb67b3\"]'] # List[str] | The resource ids to filter by. (optional)
+ resource_ids = [["4baf8423-db0a-4037-a4cf-f79c60cb67a5","1b978423-db0a-4037-a4cf-f79c60cb67b3"]] # List[UUID] | The resource ids to filter by. (optional)
resource_name = 'example-name' # str | Resource name. (optional)
- parent_resource_id = '[\"4baf8423-db0a-4037-a4cf-f79c60cb67a5\"]' # str | The parent resource id to filter by. (optional)
- ancestor_resource_id = '[\"4baf8423-db0a-4037-a4cf-f79c60cb67a5\"]' # str | The ancestor resource id to filter by. Returns all resources that are descendants of the specified resource. (optional)
+ parent_resource_id = UUID('[\"4baf8423-db0a-4037-a4cf-f79c60cb67a5\"]') # UUID | The parent resource id to filter by. (optional)
+ ancestor_resource_id = UUID('[\"4baf8423-db0a-4037-a4cf-f79c60cb67a5\"]') # UUID | The ancestor resource id to filter by. Returns all resources that are descendants of the specified resource. (optional)
remote_id = 'remote_id_example' # str | Filter resources by their remote id. This will return all resources that have a remote id that matches the provided remote id. Note that this requires resource_type_filter to be provided. (optional)
try:
@@ -1389,10 +1441,10 @@ Name | Type | Description | Notes
**cursor** | **str**| The pagination cursor value. | [optional]
**page_size** | **int**| Number of results to return per page. Default is 200. | [optional]
**resource_type_filter** | [**ResourceTypeEnum**](.md)| The resource type to filter by. Required when remote_id is provided. | [optional]
- **resource_ids** | [**List[str]**](str.md)| The resource ids to filter by. | [optional]
+ **resource_ids** | [**List[UUID]**](UUID.md)| The resource ids to filter by. | [optional]
**resource_name** | **str**| Resource name. | [optional]
- **parent_resource_id** | **str**| The parent resource id to filter by. | [optional]
- **ancestor_resource_id** | **str**| The ancestor resource id to filter by. Returns all resources that are descendants of the specified resource. | [optional]
+ **parent_resource_id** | **UUID**| The parent resource id to filter by. | [optional]
+ **ancestor_resource_id** | **UUID**| The ancestor resource id to filter by. Returns all resources that are descendants of the specified resource. | [optional]
**remote_id** | **str**| Filter resources by their remote id. This will return all resources that have a remote id that matches the provided remote id. Note that this requires resource_type_filter to be provided. | [optional]
### Return type
@@ -1419,8 +1471,6 @@ Name | Type | Description | Notes
# **get_user_resources**
> ResourceAccessUserList get_user_resources(user_id, limit=limit, cursor=cursor, include_unmanaged=include_unmanaged)
-
-
Gets the list of resources for this user.
### Example
@@ -1455,7 +1505,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.ResourcesApi(api_client)
- user_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the user.
+ user_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the user.
limit = 200 # int | Limit the number of results returned. (optional)
cursor = 'cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw' # str | The pagination cursor value. (optional)
include_unmanaged = false # bool | Include user's access to unmanaged resources. (optional)
@@ -1475,7 +1525,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **user_id** | **str**| The ID of the user. |
+ **user_id** | **UUID**| The ID of the user. |
**limit** | **int**| Limit the number of results returned. | [optional]
**cursor** | **str**| The pagination cursor value. | [optional]
**include_unmanaged** | **bool**| Include user's access to unmanaged resources. | [optional]
@@ -1504,8 +1554,6 @@ Name | Type | Description | Notes
# **resource_user_access_status_retrieve**
> ResourceUserAccessStatus resource_user_access_status_retrieve(resource_id, user_id, access_level_remote_id=access_level_remote_id, cursor=cursor, page_size=page_size)
-
-
Get user's access status to a resource.
### Example
@@ -1540,8 +1588,8 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.ResourcesApi(api_client)
- resource_id = '1b978423-db0a-4037-a4cf-f79c60cb67b3' # str | The ID of the resource.
- user_id = '29827fb8-f2dd-4e80-9576-28e31e9934ac' # str | The ID of the user.
+ resource_id = UUID('1b978423-db0a-4037-a4cf-f79c60cb67b3') # UUID | The ID of the resource.
+ user_id = UUID('29827fb8-f2dd-4e80-9576-28e31e9934ac') # UUID | The ID of the user.
access_level_remote_id = 'arn:aws:iam::590304332660:role/AdministratorAccess' # str | The remote ID of the access level that you wish to query for the resource. If omitted, the default access level remote ID value (empty string) is used. (optional)
cursor = 'cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw' # str | The pagination cursor value. (optional)
page_size = 200 # int | Number of results to return per page. Default is 200. (optional)
@@ -1561,8 +1609,8 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **resource_id** | **str**| The ID of the resource. |
- **user_id** | **str**| The ID of the user. |
+ **resource_id** | **UUID**| The ID of the resource. |
+ **user_id** | **UUID**| The ID of the user. |
**access_level_remote_id** | **str**| The remote ID of the access level that you wish to query for the resource. If omitted, the default access level remote ID value (empty string) is used. | [optional]
**cursor** | **str**| The pagination cursor value. | [optional]
**page_size** | **int**| Number of results to return per page. Default is 200. | [optional]
@@ -1589,9 +1637,7 @@ Name | Type | Description | Notes
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **set_resource_message_channels**
-> List[str] set_resource_message_channels(resource_id, message_channel_id_list)
-
-
+> List[UUID] set_resource_message_channels(resource_id, message_channel_id_list)
Sets the list of audit message channels attached to a resource.
@@ -1627,7 +1673,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.ResourcesApi(api_client)
- resource_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the resource.
+ resource_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the resource.
message_channel_id_list = opal_security.MessageChannelIDList() # MessageChannelIDList |
try:
@@ -1645,12 +1691,12 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **resource_id** | **str**| The ID of the resource. |
+ **resource_id** | **UUID**| The ID of the resource. |
**message_channel_id_list** | [**MessageChannelIDList**](MessageChannelIDList.md)| |
### Return type
-**List[str]**
+**List[UUID]**
### Authorization
@@ -1672,8 +1718,6 @@ Name | Type | Description | Notes
# **set_resource_reviewer_stages**
> List[ReviewerStage] set_resource_reviewer_stages(resource_id, reviewer_stage_list)
-
-
Sets the list of reviewer stages for a resource.
### Example
@@ -1709,7 +1753,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.ResourcesApi(api_client)
- resource_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the resource.
+ resource_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the resource.
reviewer_stage_list = opal_security.ReviewerStageList() # ReviewerStageList |
try:
@@ -1727,7 +1771,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **resource_id** | **str**| The ID of the resource. |
+ **resource_id** | **UUID**| The ID of the resource. |
**reviewer_stage_list** | [**ReviewerStageList**](ReviewerStageList.md)| |
### Return type
@@ -1752,9 +1796,7 @@ Name | Type | Description | Notes
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **set_resource_reviewers**
-> List[str] set_resource_reviewers(resource_id, reviewer_id_list)
-
-
+> List[UUID] set_resource_reviewers(resource_id, reviewer_id_list)
Sets the list of reviewers for a resource.
@@ -1790,7 +1832,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.ResourcesApi(api_client)
- resource_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the resource.
+ resource_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the resource.
reviewer_id_list = opal_security.ReviewerIDList() # ReviewerIDList |
try:
@@ -1808,12 +1850,12 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **resource_id** | **str**| The ID of the resource. |
+ **resource_id** | **UUID**| The ID of the resource. |
**reviewer_id_list** | [**ReviewerIDList**](ReviewerIDList.md)| |
### Return type
-**List[str]**
+**List[UUID]**
### Authorization
@@ -1835,8 +1877,6 @@ Name | Type | Description | Notes
# **set_resource_scoped_role_permissions**
> ScopedRolePermissionList set_resource_scoped_role_permissions(resource_id, scoped_role_permission_list)
-
-
Sets all the scoped role permissions on an OPAL_SCOPED_ROLE resource.
### Example
@@ -1871,7 +1911,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.ResourcesApi(api_client)
- resource_id = '1b978423-db0a-4037-a4cf-f79c60cb67b3' # str | The ID of the resource whose scoped role permissions belong to. Must be of OPAL_SCOPED_ROLE resource type.
+ resource_id = UUID('1b978423-db0a-4037-a4cf-f79c60cb67b3') # UUID | The ID of the resource whose scoped role permissions belong to. Must be of OPAL_SCOPED_ROLE resource type.
scoped_role_permission_list = opal_security.ScopedRolePermissionList() # ScopedRolePermissionList |
try:
@@ -1889,7 +1929,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **resource_id** | **str**| The ID of the resource whose scoped role permissions belong to. Must be of OPAL_SCOPED_ROLE resource type. |
+ **resource_id** | **UUID**| The ID of the resource whose scoped role permissions belong to. Must be of OPAL_SCOPED_ROLE resource type. |
**scoped_role_permission_list** | [**ScopedRolePermissionList**](ScopedRolePermissionList.md)| |
### Return type
@@ -1916,8 +1956,6 @@ Name | Type | Description | Notes
# **set_resource_visibility**
> VisibilityInfo set_resource_visibility(resource_id, visibility_info)
-
-
Sets the visibility of this resource.
### Example
@@ -1952,7 +1990,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.ResourcesApi(api_client)
- resource_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the resource.
+ resource_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the resource.
visibility_info = opal_security.VisibilityInfo() # VisibilityInfo |
try:
@@ -1970,7 +2008,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **resource_id** | **str**| The ID of the resource. |
+ **resource_id** | **UUID**| The ID of the resource. |
**visibility_info** | [**VisibilityInfo**](VisibilityInfo.md)| |
### Return type
@@ -1997,8 +2035,6 @@ Name | Type | Description | Notes
# **update_resource_user**
> ResourceUser update_resource_user(resource_id, user_id, update_resource_user_request)
-
-
Updates a user's access level or duration on this resource.
### Example
@@ -2034,8 +2070,8 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.ResourcesApi(api_client)
- resource_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the resource.
- user_id = 'f92aa855-cea9-4814-b9d8-f2a60d3e4a06' # str | The ID of the user whose access is being updated.
+ resource_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the resource.
+ user_id = UUID('f92aa855-cea9-4814-b9d8-f2a60d3e4a06') # UUID | The ID of the user whose access is being updated.
update_resource_user_request = opal_security.UpdateResourceUserRequest() # UpdateResourceUserRequest |
try:
@@ -2053,8 +2089,8 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **resource_id** | **str**| The ID of the resource. |
- **user_id** | **str**| The ID of the user whose access is being updated. |
+ **resource_id** | **UUID**| The ID of the resource. |
+ **user_id** | **UUID**| The ID of the user whose access is being updated. |
**update_resource_user_request** | [**UpdateResourceUserRequest**](UpdateResourceUserRequest.md)| |
### Return type
@@ -2081,8 +2117,6 @@ Name | Type | Description | Notes
# **update_resources**
> UpdateResourceInfoList update_resources(update_resource_info_list)
-
-
Bulk updates a list of resources.
### Example
diff --git a/docs/ReviewerIDList.md b/docs/ReviewerIDList.md
index 58715bd..fffd88c 100644
--- a/docs/ReviewerIDList.md
+++ b/docs/ReviewerIDList.md
@@ -6,7 +6,7 @@ A list of reviewer IDs.
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**reviewer_ids** | **List[str]** | |
+**reviewer_ids** | **List[UUID]** | |
## Example
diff --git a/docs/ReviewerStage.md b/docs/ReviewerStage.md
index 9bde0b7..747fc30 100644
--- a/docs/ReviewerStage.md
+++ b/docs/ReviewerStage.md
@@ -9,7 +9,7 @@ Name | Type | Description | Notes
**require_manager_approval** | **bool** | Whether this reviewer stage should require manager approval. |
**require_admin_approval** | **bool** | Whether this reviewer stage should require admin approval. | [optional]
**operator** | **str** | The operator of the reviewer stage. Admin and manager approval are also treated as reviewers. |
-**owner_ids** | **List[str]** | |
+**owner_ids** | **List[UUID]** | |
## Example
diff --git a/docs/ScopedRolePermission.md b/docs/ScopedRolePermission.md
index 73c87c1..23770a8 100644
--- a/docs/ScopedRolePermission.md
+++ b/docs/ScopedRolePermission.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**target_ids** | **List[str]** | The IDs of the entities that this permission applies to. If empty of missing, the permission will have untargeted scope. | [optional]
+**target_ids** | **List[UUID]** | The IDs of the entities that this permission applies to. If empty of missing, the permission will have untargeted scope. | [optional]
**target_type** | [**RolePermissionTargetTypeEnum**](RolePermissionTargetTypeEnum.md) | |
**permission_name** | [**RolePermissionNameEnum**](RolePermissionNameEnum.md) | |
**allow_all** | **bool** | |
diff --git a/docs/Session.md b/docs/Session.md
index f1bc4cb..a999feb 100644
--- a/docs/Session.md
+++ b/docs/Session.md
@@ -6,9 +6,9 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**connection_id** | **str** | The ID of the connection. |
-**user_id** | **str** | The ID of the user. |
-**resource_id** | **str** | The ID of the resource. |
+**connection_id** | **UUID** | The ID of the connection. |
+**user_id** | **UUID** | The ID of the user. |
+**resource_id** | **UUID** | The ID of the resource. |
**access_level** | [**ResourceAccessLevel**](ResourceAccessLevel.md) | |
**expiration_date** | **datetime** | The day and time the user's access will expire. |
diff --git a/docs/SessionsApi.md b/docs/SessionsApi.md
index 22311f7..5a41254 100644
--- a/docs/SessionsApi.md
+++ b/docs/SessionsApi.md
@@ -10,8 +10,6 @@ Method | HTTP request | Description
# **sessions**
> SessionsList sessions(resource_id, user_id=user_id)
-
-
Returns a list of `Session` objects.
### Example
@@ -46,7 +44,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.SessionsApi(api_client)
- resource_id = '1b978423-db0a-4037-a4cf-f79c60cb67b3' # str | The ID of the resource.
+ resource_id = UUID('1b978423-db0a-4037-a4cf-f79c60cb67b3') # UUID | The ID of the resource.
user_id = '32acc112-21ff-4669-91c2-21e27683eaa1' # str | The ID of the user you wish to query sessions for. (optional)
try:
@@ -64,7 +62,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **resource_id** | **str**| The ID of the resource. |
+ **resource_id** | **UUID**| The ID of the resource. |
**user_id** | **str**| The ID of the user you wish to query sessions for. | [optional]
### Return type
diff --git a/docs/SyncError.md b/docs/SyncError.md
index caeb41e..8800bfe 100644
--- a/docs/SyncError.md
+++ b/docs/SyncError.md
@@ -9,7 +9,7 @@ Name | Type | Description | Notes
**first_seen** | **datetime** | The time when this error was first seen. |
**last_seen** | **datetime** | The time when this error was most recently seen. |
**error_message** | **str** | The error message associated with the sync error. |
-**app_id** | **str** | The ID of the app that the error occured for. | [optional]
+**app_id** | **UUID** | The ID of the app that the error occured for. | [optional]
## Example
diff --git a/docs/SyncTask.md b/docs/SyncTask.md
index cc8de61..fbe7497 100644
--- a/docs/SyncTask.md
+++ b/docs/SyncTask.md
@@ -6,7 +6,7 @@ Represents a sync task that has been completed, either successfully or with erro
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**id** | **str** | The ID of the sync task. |
+**id** | **UUID** | The ID of the sync task. |
**completed_at** | **datetime** | The time when the sync task was completed. |
## Example
diff --git a/docs/Tag.md b/docs/Tag.md
index 17470b0..01eaf80 100644
--- a/docs/Tag.md
+++ b/docs/Tag.md
@@ -6,10 +6,10 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**tag_id** | **str** | The ID of the tag. |
+**tag_id** | **UUID** | The ID of the tag. |
**created_at** | **datetime** | The date the tag was created. | [optional]
**updated_at** | **datetime** | The date the tag was last updated. | [optional]
-**user_creator_id** | **str** | The ID of the user that created the tag. | [optional]
+**user_creator_id** | **UUID** | The ID of the user that created the tag. | [optional]
**key** | **str** | The key of the tag. | [optional]
**value** | **str** | The value of the tag. | [optional]
diff --git a/docs/TagSelector.md b/docs/TagSelector.md
index 46089af..f1a6709 100644
--- a/docs/TagSelector.md
+++ b/docs/TagSelector.md
@@ -7,7 +7,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**key** | **str** | |
**value** | **str** | |
-**connection_id** | **str** | |
+**connection_id** | **UUID** | |
## Example
diff --git a/docs/TagsApi.md b/docs/TagsApi.md
index 591e38c..4ca490f 100644
--- a/docs/TagsApi.md
+++ b/docs/TagsApi.md
@@ -20,8 +20,6 @@ Method | HTTP request | Description
# **add_group_tag**
> add_group_tag(tag_id, group_id)
-
-
Applies a tag to a group.
### Example
@@ -55,8 +53,8 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.TagsApi(api_client)
- tag_id = '1b978423-db0a-4037-a4cf-f79c60cb67b3' # str | The ID of the tag to apply.
- group_id = '1b978423-db0a-4037-a4cf-f79c60cb67b3' # str | The ID of the group to apply the tag to.
+ tag_id = UUID('1b978423-db0a-4037-a4cf-f79c60cb67b3') # UUID | The ID of the tag to apply.
+ group_id = UUID('1b978423-db0a-4037-a4cf-f79c60cb67b3') # UUID | The ID of the group to apply the tag to.
try:
api_instance.add_group_tag(tag_id, group_id)
@@ -71,8 +69,8 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **tag_id** | **str**| The ID of the tag to apply. |
- **group_id** | **str**| The ID of the group to apply the tag to. |
+ **tag_id** | **UUID**| The ID of the tag to apply. |
+ **group_id** | **UUID**| The ID of the group to apply the tag to. |
### Return type
@@ -98,8 +96,6 @@ void (empty response body)
# **add_resource_tag**
> add_resource_tag(tag_id, resource_id)
-
-
Applies a tag to a resource.
### Example
@@ -133,8 +129,8 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.TagsApi(api_client)
- tag_id = '1b978423-db0a-4037-a4cf-f79c60cb67b3' # str | The ID of the tag to apply.
- resource_id = '1b978423-db0a-4037-a4cf-f79c60cb67b3' # str | The ID of the resource to apply the tag to.
+ tag_id = UUID('1b978423-db0a-4037-a4cf-f79c60cb67b3') # UUID | The ID of the tag to apply.
+ resource_id = UUID('1b978423-db0a-4037-a4cf-f79c60cb67b3') # UUID | The ID of the resource to apply the tag to.
try:
api_instance.add_resource_tag(tag_id, resource_id)
@@ -149,8 +145,8 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **tag_id** | **str**| The ID of the tag to apply. |
- **resource_id** | **str**| The ID of the resource to apply the tag to. |
+ **tag_id** | **UUID**| The ID of the tag to apply. |
+ **resource_id** | **UUID**| The ID of the resource to apply the tag to. |
### Return type
@@ -176,8 +172,6 @@ void (empty response body)
# **add_user_tag**
> add_user_tag(tag_id, user_id, body=body)
-
-
Applies a tag to a user.
### Example
@@ -211,8 +205,8 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.TagsApi(api_client)
- tag_id = '1b978423-db0a-4037-a4cf-f79c60cb67b3' # str | The ID of the tag to apply.
- user_id = '1b978423-db0a-4037-a4cf-f79c60cb67b3' # str | The ID of the user to apply the tag to.
+ tag_id = UUID('1b978423-db0a-4037-a4cf-f79c60cb67b3') # UUID | The ID of the tag to apply.
+ user_id = UUID('1b978423-db0a-4037-a4cf-f79c60cb67b3') # UUID | The ID of the user to apply the tag to.
body = None # object | (optional)
try:
@@ -228,8 +222,8 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **tag_id** | **str**| The ID of the tag to apply. |
- **user_id** | **str**| The ID of the user to apply the tag to. |
+ **tag_id** | **UUID**| The ID of the tag to apply. |
+ **user_id** | **UUID**| The ID of the user to apply the tag to. |
**body** | **object**| | [optional]
### Return type
@@ -256,8 +250,6 @@ void (empty response body)
# **create_tag**
> Tag create_tag(tag_key=tag_key, tag_value=tag_value, admin_owner_id=admin_owner_id, create_tag_info=create_tag_info)
-
-
Creates a tag with the given key and value.
### Example
@@ -295,7 +287,7 @@ with opal_security.ApiClient(configuration) as api_client:
api_instance = opal_security.TagsApi(api_client)
tag_key = 'api-scope' # str | The key of the tag to create. (optional)
tag_value = 'production' # str | The value of the tag to create. (optional)
- admin_owner_id = 'f92aa855-cea9-4814-b9d8-f2a60d3e4a06' # str | The ID of the owner that manages the tag. (optional)
+ admin_owner_id = UUID('f92aa855-cea9-4814-b9d8-f2a60d3e4a06') # UUID | The ID of the owner that manages the tag. (optional)
create_tag_info = opal_security.CreateTagInfo() # CreateTagInfo | (optional)
try:
@@ -315,7 +307,7 @@ Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**tag_key** | **str**| The key of the tag to create. | [optional]
**tag_value** | **str**| The value of the tag to create. | [optional]
- **admin_owner_id** | **str**| The ID of the owner that manages the tag. | [optional]
+ **admin_owner_id** | **UUID**| The ID of the owner that manages the tag. | [optional]
**create_tag_info** | [**CreateTagInfo**](CreateTagInfo.md)| | [optional]
### Return type
@@ -342,8 +334,6 @@ Name | Type | Description | Notes
# **delete_tag_by_id**
> delete_tag_by_id(tag_id)
-
-
UNSTABLE. May be removed at any time. Deletes a tag with the given id.
### Example
@@ -377,7 +367,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.TagsApi(api_client)
- tag_id = '1b978423-db0a-4037-a4cf-f79c60cb67b3' # str | The tag ID
+ tag_id = UUID('1b978423-db0a-4037-a4cf-f79c60cb67b3') # UUID | The tag ID
try:
api_instance.delete_tag_by_id(tag_id)
@@ -392,7 +382,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **tag_id** | **str**| The tag ID |
+ **tag_id** | **UUID**| The tag ID |
### Return type
@@ -418,8 +408,6 @@ void (empty response body)
# **get_tag**
> Tag get_tag(tag_key, tag_value=tag_value)
-
-
Gets a tag with the given key and value.
### Example
@@ -535,7 +523,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.TagsApi(api_client)
- tag_id = '1b978423-db0a-4037-a4cf-f79c60cb67b3' # str | The tag ID
+ tag_id = UUID('1b978423-db0a-4037-a4cf-f79c60cb67b3') # UUID | The tag ID
try:
# Get tag by ID
@@ -553,7 +541,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **tag_id** | **str**| The tag ID |
+ **tag_id** | **UUID**| The tag ID |
### Return type
@@ -661,8 +649,6 @@ Name | Type | Description | Notes
# **remove_group_tag**
> remove_group_tag(tag_id, group_id)
-
-
Removes a tag from a group.
### Example
@@ -696,8 +682,8 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.TagsApi(api_client)
- tag_id = '1b978423-db0a-4037-a4cf-f79c60cb67b3' # str | The ID of the tag to remove.
- group_id = '1b978423-db0a-4037-a4cf-f79c60cb67b3' # str | The ID of the group to remove the tag from.
+ tag_id = UUID('1b978423-db0a-4037-a4cf-f79c60cb67b3') # UUID | The ID of the tag to remove.
+ group_id = UUID('1b978423-db0a-4037-a4cf-f79c60cb67b3') # UUID | The ID of the group to remove the tag from.
try:
api_instance.remove_group_tag(tag_id, group_id)
@@ -712,8 +698,8 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **tag_id** | **str**| The ID of the tag to remove. |
- **group_id** | **str**| The ID of the group to remove the tag from. |
+ **tag_id** | **UUID**| The ID of the tag to remove. |
+ **group_id** | **UUID**| The ID of the group to remove the tag from. |
### Return type
@@ -739,8 +725,6 @@ void (empty response body)
# **remove_resource_tag**
> remove_resource_tag(tag_id, resource_id)
-
-
Removes a tag from a resource.
### Example
@@ -774,8 +758,8 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.TagsApi(api_client)
- tag_id = '1b978423-db0a-4037-a4cf-f79c60cb67b3' # str | The ID of the tag to remove.
- resource_id = '1b978423-db0a-4037-a4cf-f79c60cb67b3' # str | The ID of the resource to remove the tag from.
+ tag_id = UUID('1b978423-db0a-4037-a4cf-f79c60cb67b3') # UUID | The ID of the tag to remove.
+ resource_id = UUID('1b978423-db0a-4037-a4cf-f79c60cb67b3') # UUID | The ID of the resource to remove the tag from.
try:
api_instance.remove_resource_tag(tag_id, resource_id)
@@ -790,8 +774,8 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **tag_id** | **str**| The ID of the tag to remove. |
- **resource_id** | **str**| The ID of the resource to remove the tag from. |
+ **tag_id** | **UUID**| The ID of the tag to remove. |
+ **resource_id** | **UUID**| The ID of the resource to remove the tag from. |
### Return type
@@ -817,8 +801,6 @@ void (empty response body)
# **remove_user_tag**
> remove_user_tag(tag_id, user_id)
-
-
Removes a tag from a user.
### Example
@@ -852,8 +834,8 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.TagsApi(api_client)
- tag_id = '1b978423-db0a-4037-a4cf-f79c60cb67b3' # str | The ID of the tag to remove.
- user_id = '1b978423-db0a-4037-a4cf-f79c60cb67b3' # str | The ID of the user to remove the tag from.
+ tag_id = UUID('1b978423-db0a-4037-a4cf-f79c60cb67b3') # UUID | The ID of the tag to remove.
+ user_id = UUID('1b978423-db0a-4037-a4cf-f79c60cb67b3') # UUID | The ID of the user to remove the tag from.
try:
api_instance.remove_user_tag(tag_id, user_id)
@@ -868,8 +850,8 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **tag_id** | **str**| The ID of the tag to remove. |
- **user_id** | **str**| The ID of the user to remove the tag from. |
+ **tag_id** | **UUID**| The ID of the tag to remove. |
+ **user_id** | **UUID**| The ID of the user to remove the tag from. |
### Return type
diff --git a/docs/ThirdPartyProviderEnum.md b/docs/ThirdPartyProviderEnum.md
index 3e63ae8..939270c 100644
--- a/docs/ThirdPartyProviderEnum.md
+++ b/docs/ThirdPartyProviderEnum.md
@@ -18,6 +18,8 @@ The third party provider of the remote user.
* `FRESH_SERVICE` (value: `'FRESH_SERVICE'`)
+* `SHORTCUT` (value: `'SHORTCUT'`)
+
* `PAGER_DUTY` (value: `'PAGER_DUTY'`)
* `OPSGENIE` (value: `'OPSGENIE'`)
@@ -30,6 +32,8 @@ The third party provider of the remote user.
* `TELEPORT` (value: `'TELEPORT'`)
+* `SLACK` (value: `'SLACK'`)
+
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/docs/UAR.md b/docs/UAR.md
index 7165f6f..f5847a9 100644
--- a/docs/UAR.md
+++ b/docs/UAR.md
@@ -6,13 +6,14 @@ A user access review.
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**uar_id** | **str** | The ID of the UAR. |
+**uar_id** | **UUID** | The ID of the UAR. |
**name** | **str** | The name of the UAR. |
**reviewer_assignment_policy** | [**UARReviewerAssignmentPolicyEnum**](UARReviewerAssignmentPolicyEnum.md) | |
**send_reviewer_assignment_notification** | **bool** | A bool representing whether to send a notification to reviewers when they're assigned a new review. Default is False. |
**deadline** | **datetime** | The last day for reviewers to complete their access reviews. |
**time_zone** | **str** | The time zone name (as defined by the IANA Time Zone database) used in the access review deadline and exported audit report. Default is America/Los_Angeles. |
**self_review_allowed** | **bool** | A bool representing whether to present a warning when a user is the only reviewer for themself. Default is False. |
+**instantly_action_reviews** | **bool** | A bool representing whether to instantly action changes when reviewers submit their decision. Default is False. |
**uar_scope** | [**UARScope**](UARScope.md) | | [optional]
## Example
diff --git a/docs/UARReviewerAssignmentPolicyEnum.md b/docs/UARReviewerAssignmentPolicyEnum.md
index f624ac5..6fd50a7 100644
--- a/docs/UARReviewerAssignmentPolicyEnum.md
+++ b/docs/UARReviewerAssignmentPolicyEnum.md
@@ -1,6 +1,6 @@
# UARReviewerAssignmentPolicyEnum
-A policy for auto-assigning reviewers. If auto-assignment is on, specific assignments can still be manually adjusted after the access review is started. Default is Manually.
+A policy for auto-assigning reviewers. If auto-assignment is on, specific assignments can still be manually adjusted after the access review is started. Default is Manually. BY_OWNING_TEAM_ADMIN assigns reviews to resource admins in round-robin fashion. BY_OWNING_TEAM_ADMIN_ALL assigns reviews to all resource admins. BY_APPROVERS assigns reviews to resource approvers in round-robin fashion. BY_APPROVERS_ALL assigns reviews to all resource approvers.
## Enum
@@ -8,8 +8,14 @@ A policy for auto-assigning reviewers. If auto-assignment is on, specific assign
* `BY_OWNING_TEAM_ADMIN` (value: `'BY_OWNING_TEAM_ADMIN'`)
+* `BY_OWNING_TEAM_ADMIN_ALL` (value: `'BY_OWNING_TEAM_ADMIN_ALL'`)
+
* `BY_MANAGER` (value: `'BY_MANAGER'`)
+* `BY_APPROVERS` (value: `'BY_APPROVERS'`)
+
+* `BY_APPROVERS_ALL` (value: `'BY_APPROVERS_ALL'`)
+
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
diff --git a/docs/UARScope.md b/docs/UARScope.md
index 745e8ad..a2f0f2d 100644
--- a/docs/UARScope.md
+++ b/docs/UARScope.md
@@ -7,11 +7,11 @@ If set, the access review will only contain resources and groups that match at l
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**group_visibility** | **str** | Specifies what users can see during an Access Review | [optional]
-**users** | **List[str]** | The access review will only include the following users. If any users are selected, any entity filters will be applied to only the entities that the selected users have access to. | [optional]
+**users** | **List[UUID]** | The access review will only include the following users. If any users are selected, any entity filters will be applied to only the entities that the selected users have access to. | [optional]
**filter_operator** | **str** | Specifies whether entities must match all (AND) or any (OR) of the filters. | [optional]
-**entities** | **List[str]** | This access review will include resources and groups with ids in the given strings. | [optional]
-**apps** | **List[str]** | This access review will include items in the specified applications | [optional]
-**admins** | **List[str]** | This access review will include resources and groups who are owned by one of the owners corresponding to the given IDs. | [optional]
+**entities** | **List[UUID]** | This access review will include resources and groups with ids in the given strings. | [optional]
+**apps** | **List[UUID]** | This access review will include items in the specified applications | [optional]
+**admins** | **List[UUID]** | This access review will include resources and groups who are owned by one of the owners corresponding to the given IDs. | [optional]
**group_types** | [**List[GroupTypeEnum]**](GroupTypeEnum.md) | This access review will include items of the specified group types | [optional]
**resource_types** | [**List[ResourceTypeEnum]**](ResourceTypeEnum.md) | This access review will include items of the specified resource types | [optional]
**include_group_bindings** | **bool** | | [optional]
diff --git a/docs/UarsApi.md b/docs/UarsApi.md
index 0de803a..24d66dd 100644
--- a/docs/UarsApi.md
+++ b/docs/UarsApi.md
@@ -12,8 +12,6 @@ Method | HTTP request | Description
# **create_uar**
> UAR create_uar(create_uar_info)
-
-
Starts a User Access Review.
### Example
@@ -92,8 +90,6 @@ Name | Type | Description | Notes
# **get_uar**
> UAR get_uar(uar_id)
-
-
Retrieves a specific UAR.
### Example
@@ -128,7 +124,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.UarsApi(api_client)
- uar_id = '4baf8423-db0a-4037-a4cf-f79c60cb67a5' # str | The ID of the UAR.
+ uar_id = UUID('4baf8423-db0a-4037-a4cf-f79c60cb67a5') # UUID | The ID of the UAR.
try:
api_response = api_instance.get_uar(uar_id)
@@ -145,7 +141,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **uar_id** | **str**| The ID of the UAR. |
+ **uar_id** | **UUID**| The ID of the UAR. |
### Return type
@@ -171,8 +167,6 @@ Name | Type | Description | Notes
# **get_uars**
> PaginatedUARsList get_uars(cursor=cursor, page_size=page_size)
-
-
Returns a list of `UAR` objects.
### Example
diff --git a/docs/UpdateAccessRuleInfo.md b/docs/UpdateAccessRuleInfo.md
index 5deb162..397eb1b 100644
--- a/docs/UpdateAccessRuleInfo.md
+++ b/docs/UpdateAccessRuleInfo.md
@@ -8,7 +8,7 @@ Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**name** | **str** | The name of the access rule. |
**description** | **str** | A description of the group. |
-**admin_owner_id** | **str** | The ID of the owner of the group. |
+**admin_owner_id** | **UUID** | The ID of the owner of the group. |
**status** | **str** | The status of the access rule. |
**rule_clauses** | [**RuleClauses**](RuleClauses.md) | |
diff --git a/docs/UpdateConfigurationTemplateInfo.md b/docs/UpdateConfigurationTemplateInfo.md
index 8535506..4ad5cc1 100644
--- a/docs/UpdateConfigurationTemplateInfo.md
+++ b/docs/UpdateConfigurationTemplateInfo.md
@@ -6,15 +6,15 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**configuration_template_id** | **str** | The ID of the configuration template. |
+**configuration_template_id** | **UUID** | The ID of the configuration template. |
**name** | **str** | The name of the configuration template. | [optional]
-**admin_owner_id** | **str** | The ID of the owner of the configuration template. | [optional]
+**admin_owner_id** | **UUID** | The ID of the owner of the configuration template. | [optional]
**visibility** | [**VisibilityInfo**](VisibilityInfo.md) | The visibility info of the configuration template. | [optional]
-**linked_audit_message_channel_ids** | **List[str]** | The IDs of the audit message channels linked to the configuration template. | [optional]
+**linked_audit_message_channel_ids** | **List[UUID]** | The IDs of the audit message channels linked to the configuration template. | [optional]
**request_configurations** | [**List[RequestConfiguration]**](RequestConfiguration.md) | The request configuration list linked to the configuration template. | [optional]
**request_configuration_list** | [**CreateRequestConfigurationInfoList**](CreateRequestConfigurationInfoList.md) | The request configuration list linked to the configuration template. Deprecated in favor of `request_configurations`. | [optional]
-**member_oncall_schedule_ids** | **List[str]** | The IDs of the on-call schedules linked to the configuration template. | [optional]
-**break_glass_user_ids** | **List[str]** | The IDs of the break glass users linked to the configuration template. | [optional]
+**member_oncall_schedule_ids** | **List[UUID]** | The IDs of the on-call schedules linked to the configuration template. | [optional]
+**break_glass_user_ids** | **List[UUID]** | The IDs of the break glass users linked to the configuration template. | [optional]
**require_mfa_to_approve** | **bool** | A bool representing whether or not to require MFA for reviewers to approve requests for this configuration template. | [optional]
**require_mfa_to_connect** | **bool** | A bool representing whether or not to require MFA to connect to resources associated with this configuration template. | [optional]
**ticket_propagation** | [**TicketPropagationConfiguration**](TicketPropagationConfiguration.md) | | [optional]
diff --git a/docs/UpdateGroupBindingInfo.md b/docs/UpdateGroupBindingInfo.md
index f20a925..4f70835 100644
--- a/docs/UpdateGroupBindingInfo.md
+++ b/docs/UpdateGroupBindingInfo.md
@@ -6,8 +6,8 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**group_binding_id** | **str** | The ID of the group binding. |
-**source_group_id** | **str** | The ID of the source group. |
+**group_binding_id** | **UUID** | The ID of the group binding. |
+**source_group_id** | **UUID** | The ID of the source group. |
**groups** | [**List[CreateGroupBindingInfoGroupsInner]**](CreateGroupBindingInfoGroupsInner.md) | The list of groups. |
## Example
diff --git a/docs/UpdateGroupInfo.md b/docs/UpdateGroupInfo.md
index 220a555..489f5e1 100644
--- a/docs/UpdateGroupInfo.md
+++ b/docs/UpdateGroupInfo.md
@@ -6,22 +6,22 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**group_id** | **str** | The ID of the group. |
+**group_id** | **UUID** | The ID of the group. |
**name** | **str** | The name of the group. | [optional]
**description** | **str** | A description of the group. | [optional]
-**admin_owner_id** | **str** | The ID of the owner of the group. | [optional]
+**admin_owner_id** | **UUID** | The ID of the owner of the group. | [optional]
**max_duration** | **int** | The maximum duration for which the group can be requested (in minutes). Use -1 to set to indefinite. Deprecated in favor of `request_configurations`. | [optional]
**recommended_duration** | **int** | The recommended duration for which the group should be requested (in minutes). Will be the default value in a request. Use -1 to set to indefinite and 0 to unset. Deprecated in favor of `request_configurations`. | [optional]
**require_manager_approval** | **bool** | A bool representing whether or not access requests to the group require manager approval. Deprecated in favor of `request_configurations`. | [optional]
**require_support_ticket** | **bool** | A bool representing whether or not access requests to the group require an access ticket. Deprecated in favor of `request_configurations`. | [optional]
-**folder_id** | **str** | The ID of the folder that the group is located in. | [optional]
+**folder_id** | **UUID** | The ID of the folder that the group is located in. | [optional]
**require_mfa_to_approve** | **bool** | A bool representing whether or not to require MFA for reviewers to approve requests for this group. | [optional]
**require_mfa_to_request** | **bool** | A bool representing whether or not to require MFA for requesting access to this group. Deprecated in favor of `request_configurations`. | [optional]
**auto_approval** | **bool** | A bool representing whether or not to automatically approve requests to this group. Deprecated in favor of `request_configurations`. | [optional]
-**configuration_template_id** | **str** | The ID of the associated configuration template. | [optional]
-**request_template_id** | **str** | The ID of the associated request template. Deprecated in favor of `request_configurations`. | [optional]
+**configuration_template_id** | **UUID** | The ID of the associated configuration template. | [optional]
+**request_template_id** | **UUID** | The ID of the associated request template. Deprecated in favor of `request_configurations`. | [optional]
**is_requestable** | **bool** | A bool representing whether or not to allow access requests to this group. Deprecated in favor of `request_configurations`. | [optional]
-**group_leader_user_ids** | **List[str]** | A list of User IDs for the group leaders of the group | [optional]
+**group_leader_user_ids** | **List[UUID]** | A list of User IDs for the group leaders of the group | [optional]
**extensions_duration_in_minutes** | **int** | The duration for which access can be extended (in minutes). Deprecated, set the extension duration in the request_configuration you want it to apply to. | [optional]
**request_configurations** | [**List[RequestConfiguration]**](RequestConfiguration.md) | The request configuration list of the configuration template. If not provided, the default request configuration will be used. | [optional]
**request_configuration_list** | [**CreateRequestConfigurationInfoList**](CreateRequestConfigurationInfoList.md) | The request configuration list of the configuration template. If not provided, the default request configuration will be used. Deprecated in favor of `request_configurations`. | [optional]
diff --git a/docs/UpdateIdpGroupMappingsRequestMappingsInner.md b/docs/UpdateIdpGroupMappingsRequestMappingsInner.md
index 9ea2d1c..b8c3859 100644
--- a/docs/UpdateIdpGroupMappingsRequestMappingsInner.md
+++ b/docs/UpdateIdpGroupMappingsRequestMappingsInner.md
@@ -5,7 +5,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**group_id** | **str** | | [optional]
+**group_id** | **UUID** | | [optional]
**alias** | **str** | | [optional]
**hidden_from_end_user** | **bool** | | [optional]
diff --git a/docs/UpdateOwnerInfo.md b/docs/UpdateOwnerInfo.md
index 27e4a15..cf4db95 100644
--- a/docs/UpdateOwnerInfo.md
+++ b/docs/UpdateOwnerInfo.md
@@ -6,12 +6,12 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**owner_id** | **str** | The ID of the owner. |
+**owner_id** | **UUID** | The ID of the owner. |
**name** | **str** | The name of the owner. | [optional]
**description** | **str** | A description of the owner. | [optional]
**access_request_escalation_period** | **int** | The amount of time (in minutes) before the next reviewer is notified. Use 0 to remove escalation policy. | [optional]
**reviewer_message_channel_id** | **str** | The message channel id for the reviewer channel. Use \"\" to remove an existing message channel. | [optional]
-**source_group_id** | **str** | Sync this owner's user list with a source group. Use \"\" to remove an existing source group. | [optional]
+**source_group_id** | **UUID** | Sync this owner's user list with a source group. Use \"\" to remove an existing source group. | [optional]
## Example
diff --git a/docs/UpdateResourceInfo.md b/docs/UpdateResourceInfo.md
index d14fa6d..c1fa4de 100644
--- a/docs/UpdateResourceInfo.md
+++ b/docs/UpdateResourceInfo.md
@@ -6,15 +6,15 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**resource_id** | **str** | The ID of the resource. |
+**resource_id** | **UUID** | The ID of the resource. |
**name** | **str** | The name of the resource. | [optional]
**description** | **str** | A description of the resource. | [optional]
-**admin_owner_id** | **str** | The ID of the owner of the resource. | [optional]
+**admin_owner_id** | **UUID** | The ID of the owner of the resource. | [optional]
**max_duration** | **int** | The maximum duration for which the resource can be requested (in minutes). Use -1 to set to indefinite. Deprecated in favor of `request_configurations`. | [optional]
**recommended_duration** | **int** | The recommended duration for which the resource should be requested (in minutes). Will be the default value in a request. Use -1 to set to indefinite and 0 to unset. Deprecated in favor of `request_configurations`. | [optional]
**require_manager_approval** | **bool** | A bool representing whether or not access requests to the resource require manager approval. | [optional]
**require_support_ticket** | **bool** | A bool representing whether or not access requests to the resource require an access ticket. Deprecated in favor of `request_configurations`. | [optional]
-**folder_id** | **str** | The ID of the folder that the resource is located in. | [optional]
+**folder_id** | **UUID** | The ID of the folder that the resource is located in. | [optional]
**require_mfa_to_approve** | **bool** | A bool representing whether or not to require MFA for reviewers to approve requests for this resource. | [optional]
**require_mfa_to_request** | **bool** | A bool representing whether or not to require MFA for requesting access to this resource. Deprecated in favor of `request_configurations`. | [optional]
**require_mfa_to_connect** | **bool** | A bool representing whether or not to require MFA to connect to this resource. | [optional]
@@ -22,8 +22,8 @@ Name | Type | Description | Notes
**ticket_propagation** | [**TicketPropagationConfiguration**](TicketPropagationConfiguration.md) | | [optional]
**custom_request_notification** | **str** | Custom request notification sent upon request approval. | [optional]
**risk_sensitivity_override** | [**RiskSensitivityEnum**](RiskSensitivityEnum.md) | | [optional]
-**configuration_template_id** | **str** | The ID of the associated configuration template. | [optional]
-**request_template_id** | **str** | The ID of the associated request template. Deprecated in favor of `request_configurations`. | [optional]
+**configuration_template_id** | **UUID** | The ID of the associated configuration template. | [optional]
+**request_template_id** | **UUID** | The ID of the associated request template. Deprecated in favor of `request_configurations`. | [optional]
**is_requestable** | **bool** | A bool representing whether or not to allow access requests to this resource. Deprecated in favor of `request_configurations`. | [optional]
**extensions_duration_in_minutes** | **int** | The duration for which access can be extended (in minutes). Deprecated, set the extension duration in the request_configuration you want it to apply to. | [optional]
**request_configurations** | [**List[RequestConfiguration]**](RequestConfiguration.md) | A list of configurations for requests to this resource. If not provided, the default request configuration will be used. | [optional]
diff --git a/docs/User.md b/docs/User.md
index a7d636c..4972125 100644
--- a/docs/User.md
+++ b/docs/User.md
@@ -6,7 +6,7 @@
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**user_id** | **str** | The ID of the user. |
+**user_id** | **UUID** | The ID of the user. |
**email** | **str** | The email of the user. |
**full_name** | **str** | The full name of the user. |
**first_name** | **str** | The first name of the user. |
diff --git a/docs/UserIDList.md b/docs/UserIDList.md
index 1ed9554..3c6f8b2 100644
--- a/docs/UserIDList.md
+++ b/docs/UserIDList.md
@@ -6,7 +6,7 @@ A list of user IDs.
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
-**user_ids** | **List[str]** | |
+**user_ids** | **List[UUID]** | |
## Example
diff --git a/docs/UsersApi.md b/docs/UsersApi.md
index f782487..bad87fd 100644
--- a/docs/UsersApi.md
+++ b/docs/UsersApi.md
@@ -13,8 +13,6 @@ Method | HTTP request | Description
# **get_remote_users**
> PaginatedRemoteUsersList get_remote_users(third_party_provider=third_party_provider, user_id=user_id, remote_id=remote_id, cursor=cursor, page_size=page_size)
-
-
Returns a list of remote users for your organization.
### Example
@@ -51,7 +49,7 @@ with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.UsersApi(api_client)
third_party_provider = [opal_security.ThirdPartyProviderEnum()] # List[ThirdPartyProviderEnum] | Filter remote users by their third party provider. (optional)
- user_id = ['[\"32acc112-21ff-4669-91c2-21e27683eaa1\"]'] # List[str] | Filter remote users by their user ID. (optional)
+ user_id = [["32acc112-21ff-4669-91c2-21e27683eaa1"]] # List[UUID] | Filter remote users by their user ID. (optional)
remote_id = ['[1234567890]'] # List[str] | Filter remote users by their remote ID. (optional)
cursor = 'cD0yMDIxLTAxLTA2KzAzJTNBMjQlM0E1My40MzQzMjYlMkIwMCUzQTAw' # str | The pagination cursor value. (optional)
page_size = 200 # int | Number of results to return per page. Default is 200. (optional)
@@ -72,7 +70,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
**third_party_provider** | [**List[ThirdPartyProviderEnum]**](ThirdPartyProviderEnum.md)| Filter remote users by their third party provider. | [optional]
- **user_id** | [**List[str]**](str.md)| Filter remote users by their user ID. | [optional]
+ **user_id** | [**List[UUID]**](UUID.md)| Filter remote users by their user ID. | [optional]
**remote_id** | [**List[str]**](str.md)| Filter remote users by their remote ID. | [optional]
**cursor** | **str**| The pagination cursor value. | [optional]
**page_size** | **int**| Number of results to return per page. Default is 200. | [optional]
@@ -101,8 +99,6 @@ Name | Type | Description | Notes
# **get_user_tags**
> TagsList get_user_tags(user_id)
-
-
Returns all tags applied to the user.
### Example
@@ -137,7 +133,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.UsersApi(api_client)
- user_id = '1b978423-db0a-4037-a4cf-f79c60cb67b3' # str | The ID of the user whose tags to return.
+ user_id = UUID('1b978423-db0a-4037-a4cf-f79c60cb67b3') # UUID | The ID of the user whose tags to return.
try:
api_response = api_instance.get_user_tags(user_id)
@@ -154,7 +150,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **user_id** | **str**| The ID of the user whose tags to return. |
+ **user_id** | **UUID**| The ID of the user whose tags to return. |
### Return type
@@ -180,8 +176,6 @@ Name | Type | Description | Notes
# **get_users**
> PaginatedUsersList get_users(cursor=cursor, page_size=page_size)
-
-
Returns a list of users for your organization.
### Example
@@ -261,8 +255,6 @@ Name | Type | Description | Notes
# **user**
> User user(user_id=user_id, email=email)
-
-
Returns a `User` object.
### Example
@@ -297,7 +289,7 @@ configuration = opal.Configuration(
with opal_security.ApiClient(configuration) as api_client:
# Create an instance of the API class
api_instance = opal_security.UsersApi(api_client)
- user_id = '32acc112-21ff-4669-91c2-21e27683eaa1' # str | The user ID of the user. (optional)
+ user_id = UUID('32acc112-21ff-4669-91c2-21e27683eaa1') # UUID | The user ID of the user. (optional)
email = 'johndoe@domain.org' # str | The email of the user. If both user ID and email are provided, user ID will take precedence. If neither are provided, an error will occur. (optional)
try:
@@ -315,7 +307,7 @@ with opal_security.ApiClient(configuration) as api_client:
Name | Type | Description | Notes
------------- | ------------- | ------------- | -------------
- **user_id** | **str**| The user ID of the user. | [optional]
+ **user_id** | **UUID**| The user ID of the user. | [optional]
**email** | **str**| The email of the user. If both user ID and email are provided, user ID will take precedence. If neither are provided, an error will occur. | [optional]
### Return type
diff --git a/docs/VisibilityInfo.md b/docs/VisibilityInfo.md
index 9431dcb..2ce9340 100644
--- a/docs/VisibilityInfo.md
+++ b/docs/VisibilityInfo.md
@@ -7,7 +7,7 @@ Visibility infomation of an entity.
Name | Type | Description | Notes
------------ | ------------- | ------------- | -------------
**visibility** | [**VisibilityTypeEnum**](VisibilityTypeEnum.md) | |
-**visibility_group_ids** | **List[str]** | | [optional]
+**visibility_group_ids** | **List[UUID]** | | [optional]
## Example
diff --git a/opal_security/__init__.py b/opal_security/__init__.py
index ea0d19f..aa3d71d 100644
--- a/opal_security/__init__.py
+++ b/opal_security/__init__.py
@@ -17,269 +17,573 @@
__version__ = "1.0.0"
+# Define package exports
+__all__ = [
+ "AccessRulesApi",
+ "AppsApi",
+ "BundlesApi",
+ "ConfigurationTemplatesApi",
+ "DelegationsApi",
+ "EventsApi",
+ "GroupBindingsApi",
+ "GroupsApi",
+ "IdpGroupMappingsApi",
+ "MessageChannelsApi",
+ "NonHumanIdentitiesApi",
+ "OnCallSchedulesApi",
+ "OwnersApi",
+ "RequestsApi",
+ "ResourcesApi",
+ "SessionsApi",
+ "TagsApi",
+ "UarsApi",
+ "UsersApi",
+ "ApiResponse",
+ "ApiClient",
+ "Configuration",
+ "OpenApiException",
+ "ApiTypeError",
+ "ApiValueError",
+ "ApiKeyError",
+ "ApiAttributeError",
+ "ApiException",
+ "Access",
+ "AccessList",
+ "AccessRule",
+ "AddBundleGroupRequest",
+ "AddBundleResourceRequest",
+ "AddGroupResourceRequest",
+ "AddGroupUserRequest",
+ "AddResourceNhiRequest",
+ "AddResourceUserRequest",
+ "App",
+ "AppTypeEnum",
+ "AppValidation",
+ "AppValidationSeverityEnum",
+ "AppValidationStatusEnum",
+ "ApproveRequest200Response",
+ "ApproveRequestRequest",
+ "AppsList",
+ "AwsPermissionSetMetadata",
+ "AwsPermissionSetMetadataAwsPermissionSet",
+ "Bundle",
+ "BundleGroup",
+ "BundleResource",
+ "Condition",
+ "ConfigurationTemplate",
+ "CreateBundleInfo",
+ "CreateConfigurationTemplateInfo",
+ "CreateDelegationRequest",
+ "CreateGroupBindingInfo",
+ "CreateGroupBindingInfoGroupsInner",
+ "CreateGroupInfo",
+ "CreateIdpGroupMappingRequest",
+ "CreateMessageChannelInfo",
+ "CreateOnCallScheduleInfo",
+ "CreateOwnerInfo",
+ "CreateRequest200Response",
+ "CreateRequestCommentRequest",
+ "CreateRequestConfigurationInfoList",
+ "CreateRequestInfo",
+ "CreateRequestInfoCustomMetadataInner",
+ "CreateRequestInfoGroupsInner",
+ "CreateRequestInfoResourcesInner",
+ "CreateRequestInfoSupportTicket",
+ "CreateResourceInfo",
+ "CreateTagInfo",
+ "CreateUARInfo",
+ "Delegation",
+ "DenyRequestRequest",
+ "EntityTypeEnum",
+ "Event",
+ "GetResourceUser200Response",
+ "Group",
+ "GroupAccessLevel",
+ "GroupBinding",
+ "GroupBindingGroup",
+ "GroupContainingGroup",
+ "GroupContainingGroupList",
+ "GroupRemoteInfo",
+ "GroupRemoteInfoActiveDirectoryGroup",
+ "GroupRemoteInfoAwsSsoGroup",
+ "GroupRemoteInfoAzureAdMicrosoft365Group",
+ "GroupRemoteInfoAzureAdSecurityGroup",
+ "GroupRemoteInfoConnectorGroup",
+ "GroupRemoteInfoDatabricksAccountGroup",
+ "GroupRemoteInfoDevinGroup",
+ "GroupRemoteInfoDuoGroup",
+ "GroupRemoteInfoGithubTeam",
+ "GroupRemoteInfoGitlabGroup",
+ "GroupRemoteInfoGoogleGroup",
+ "GroupRemoteInfoIncidentioOnCallSchedule",
+ "GroupRemoteInfoLdapGroup",
+ "GroupRemoteInfoOktaGroup",
+ "GroupRemoteInfoOktaGroupRule",
+ "GroupRemoteInfoPagerdutyOnCallSchedule",
+ "GroupRemoteInfoRootlyOnCallSchedule",
+ "GroupRemoteInfoSnowflakeRole",
+ "GroupRemoteInfoTailscaleGroup",
+ "GroupRemoteInfoWorkdayUserSecurityGroup",
+ "GroupResource",
+ "GroupResourceList",
+ "GroupTypeEnum",
+ "GroupUser",
+ "GroupUserList",
+ "GroupWithAccessLevel",
+ "IdpGroupMapping",
+ "IdpGroupMappingList",
+ "MessageChannel",
+ "MessageChannelIDList",
+ "MessageChannelList",
+ "MessageChannelProviderEnum",
+ "OnCallSchedule",
+ "OnCallScheduleIDList",
+ "OnCallScheduleList",
+ "OnCallScheduleProviderEnum",
+ "Owner",
+ "PageInfo",
+ "PaginatedAssignedRequestList",
+ "PaginatedBundleGroupList",
+ "PaginatedBundleList",
+ "PaginatedBundleResourceList",
+ "PaginatedConfigurationTemplateList",
+ "PaginatedDelegationsList",
+ "PaginatedEventList",
+ "PaginatedGroupBindingsList",
+ "PaginatedGroupsList",
+ "PaginatedOwnersList",
+ "PaginatedRemoteUsersList",
+ "PaginatedResourcesList",
+ "PaginatedTagsList",
+ "PaginatedUARsList",
+ "PaginatedUsersList",
+ "PropagationStatus",
+ "PropagationStatusEnum",
+ "RDSEngineEnum",
+ "RemoteUser",
+ "Request",
+ "RequestApprovalEnum",
+ "RequestComment",
+ "RequestCommentList",
+ "RequestConfiguration",
+ "RequestConnection",
+ "RequestCustomFieldResponse",
+ "RequestCustomFieldResponseFieldValue",
+ "RequestEdge",
+ "RequestItemStages",
+ "RequestList",
+ "RequestReviewer",
+ "RequestReviewerStages",
+ "RequestStage",
+ "RequestStatusEnum",
+ "RequestTemplateCustomFieldTypeEnum",
+ "RequestedItem",
+ "Resource",
+ "ResourceAccessLevel",
+ "ResourceAccessUser",
+ "ResourceAccessUserList",
+ "ResourceNHI",
+ "ResourceRemoteInfo",
+ "ResourceRemoteInfoAnthropicWorkspace",
+ "ResourceRemoteInfoAwsAccount",
+ "ResourceRemoteInfoAwsEc2Instance",
+ "ResourceRemoteInfoAwsEksCluster",
+ "ResourceRemoteInfoAwsIamRole",
+ "ResourceRemoteInfoAwsOrganizationalUnit",
+ "ResourceRemoteInfoAwsPermissionSet",
+ "ResourceRemoteInfoAwsRdsCluster",
+ "ResourceRemoteInfoAwsRdsInstance",
+ "ResourceRemoteInfoAzureEnterpriseApp",
+ "ResourceRemoteInfoAzureEntraIdRole",
+ "ResourceRemoteInfoAzureManagementGroup",
+ "ResourceRemoteInfoAzureResourceGroup",
+ "ResourceRemoteInfoAzureSqlDatabase",
+ "ResourceRemoteInfoAzureSqlManagedDatabase",
+ "ResourceRemoteInfoAzureSqlManagedInstance",
+ "ResourceRemoteInfoAzureSqlServer",
+ "ResourceRemoteInfoAzureStorageAccount",
+ "ResourceRemoteInfoAzureStorageContainer",
+ "ResourceRemoteInfoAzureSubscription",
+ "ResourceRemoteInfoAzureUserAssignedManagedIdentity",
+ "ResourceRemoteInfoAzureVirtualMachine",
+ "ResourceRemoteInfoCoupaRole",
+ "ResourceRemoteInfoCursorOrganization",
+ "ResourceRemoteInfoCustomConnector",
+ "ResourceRemoteInfoDatabricksAccountServicePrincipal",
+ "ResourceRemoteInfoDatastaxAstraRole",
+ "ResourceRemoteInfoDevinOrganization",
+ "ResourceRemoteInfoDevinRole",
+ "ResourceRemoteInfoGcpBigQueryDataset",
+ "ResourceRemoteInfoGcpBigQueryTable",
+ "ResourceRemoteInfoGcpBucket",
+ "ResourceRemoteInfoGcpComputeInstance",
+ "ResourceRemoteInfoGcpFolder",
+ "ResourceRemoteInfoGcpGkeCluster",
+ "ResourceRemoteInfoGcpOrganization",
+ "ResourceRemoteInfoGcpProject",
+ "ResourceRemoteInfoGcpServiceAccount",
+ "ResourceRemoteInfoGcpSqlInstance",
+ "ResourceRemoteInfoGithubOrg",
+ "ResourceRemoteInfoGithubOrgRole",
+ "ResourceRemoteInfoGithubRepo",
+ "ResourceRemoteInfoGitlabProject",
+ "ResourceRemoteInfoGoogleWorkspaceRole",
+ "ResourceRemoteInfoIlevelAdvancedRole",
+ "ResourceRemoteInfoOktaApp",
+ "ResourceRemoteInfoOktaCustomRole",
+ "ResourceRemoteInfoOktaStandardRole",
+ "ResourceRemoteInfoOpenaiPlatformProject",
+ "ResourceRemoteInfoOpenaiPlatformServiceAccount",
+ "ResourceRemoteInfoOracleFusionRole",
+ "ResourceRemoteInfoPagerdutyRole",
+ "ResourceRemoteInfoSalesforcePermissionSet",
+ "ResourceRemoteInfoSalesforceProfile",
+ "ResourceRemoteInfoSalesforceRole",
+ "ResourceRemoteInfoSnowflakeDatabase",
+ "ResourceRemoteInfoSnowflakeSchema",
+ "ResourceRemoteInfoSnowflakeTable",
+ "ResourceRemoteInfoTailscaleSsh",
+ "ResourceRemoteInfoTeleportRole",
+ "ResourceRemoteInfoWorkdayRole",
+ "ResourceTypeEnum",
+ "ResourceUser",
+ "ResourceUserAccessStatus",
+ "ResourceUserAccessStatusEnum",
+ "ResourceWithAccessLevel",
+ "ReviewStageOperator",
+ "ReviewerIDList",
+ "ReviewerStage",
+ "ReviewerStageList",
+ "RiskSensitivityEnum",
+ "RolePermissionNameEnum",
+ "RolePermissionTargetTypeEnum",
+ "RuleClauses",
+ "RuleConjunction",
+ "RuleDisjunction",
+ "ScopedRolePermission",
+ "ScopedRolePermissionList",
+ "Session",
+ "SessionsList",
+ "SubEvent",
+ "SyncError",
+ "SyncErrorList",
+ "SyncTask",
+ "Tag",
+ "TagFilter",
+ "TagSelector",
+ "TagsList",
+ "ThirdPartyProviderEnum",
+ "TicketPropagationConfiguration",
+ "TicketingProviderEnum",
+ "UAR",
+ "UARReviewerAssignmentPolicyEnum",
+ "UARScope",
+ "UpdateAccessRuleInfo",
+ "UpdateConfigurationTemplateInfo",
+ "UpdateGroupBindingInfo",
+ "UpdateGroupBindingInfoList",
+ "UpdateGroupInfo",
+ "UpdateGroupInfoList",
+ "UpdateGroupResourcesInfo",
+ "UpdateGroupUserRequest",
+ "UpdateIdpGroupMappingsRequest",
+ "UpdateIdpGroupMappingsRequestMappingsInner",
+ "UpdateOwnerInfo",
+ "UpdateOwnerInfoList",
+ "UpdateResourceInfo",
+ "UpdateResourceInfoList",
+ "UpdateResourceUserRequest",
+ "User",
+ "UserHrIdpStatusEnum",
+ "UserIDList",
+ "UserList",
+ "VisibilityInfo",
+ "VisibilityTypeEnum",
+]
+
# import apis into sdk package
-from opal_security.api.access_rules_api import AccessRulesApi
-from opal_security.api.apps_api import AppsApi
-from opal_security.api.bundles_api import BundlesApi
-from opal_security.api.configuration_templates_api import ConfigurationTemplatesApi
-from opal_security.api.delegations_api import DelegationsApi
-from opal_security.api.events_api import EventsApi
-from opal_security.api.group_bindings_api import GroupBindingsApi
-from opal_security.api.groups_api import GroupsApi
-from opal_security.api.idp_group_mappings_api import IdpGroupMappingsApi
-from opal_security.api.message_channels_api import MessageChannelsApi
-from opal_security.api.non_human_identities_api import NonHumanIdentitiesApi
-from opal_security.api.on_call_schedules_api import OnCallSchedulesApi
-from opal_security.api.owners_api import OwnersApi
-from opal_security.api.requests_api import RequestsApi
-from opal_security.api.resources_api import ResourcesApi
-from opal_security.api.sessions_api import SessionsApi
-from opal_security.api.tags_api import TagsApi
-from opal_security.api.uars_api import UarsApi
-from opal_security.api.users_api import UsersApi
+from opal_security.api.access_rules_api import AccessRulesApi as AccessRulesApi
+from opal_security.api.apps_api import AppsApi as AppsApi
+from opal_security.api.bundles_api import BundlesApi as BundlesApi
+from opal_security.api.configuration_templates_api import ConfigurationTemplatesApi as ConfigurationTemplatesApi
+from opal_security.api.delegations_api import DelegationsApi as DelegationsApi
+from opal_security.api.events_api import EventsApi as EventsApi
+from opal_security.api.group_bindings_api import GroupBindingsApi as GroupBindingsApi
+from opal_security.api.groups_api import GroupsApi as GroupsApi
+from opal_security.api.idp_group_mappings_api import IdpGroupMappingsApi as IdpGroupMappingsApi
+from opal_security.api.message_channels_api import MessageChannelsApi as MessageChannelsApi
+from opal_security.api.non_human_identities_api import NonHumanIdentitiesApi as NonHumanIdentitiesApi
+from opal_security.api.on_call_schedules_api import OnCallSchedulesApi as OnCallSchedulesApi
+from opal_security.api.owners_api import OwnersApi as OwnersApi
+from opal_security.api.requests_api import RequestsApi as RequestsApi
+from opal_security.api.resources_api import ResourcesApi as ResourcesApi
+from opal_security.api.sessions_api import SessionsApi as SessionsApi
+from opal_security.api.tags_api import TagsApi as TagsApi
+from opal_security.api.uars_api import UarsApi as UarsApi
+from opal_security.api.users_api import UsersApi as UsersApi
# import ApiClient
-from opal_security.api_response import ApiResponse
-from opal_security.api_client import ApiClient
-from opal_security.configuration import Configuration
-from opal_security.exceptions import OpenApiException
-from opal_security.exceptions import ApiTypeError
-from opal_security.exceptions import ApiValueError
-from opal_security.exceptions import ApiKeyError
-from opal_security.exceptions import ApiAttributeError
-from opal_security.exceptions import ApiException
+from opal_security.api_response import ApiResponse as ApiResponse
+from opal_security.api_client import ApiClient as ApiClient
+from opal_security.configuration import Configuration as Configuration
+from opal_security.exceptions import OpenApiException as OpenApiException
+from opal_security.exceptions import ApiTypeError as ApiTypeError
+from opal_security.exceptions import ApiValueError as ApiValueError
+from opal_security.exceptions import ApiKeyError as ApiKeyError
+from opal_security.exceptions import ApiAttributeError as ApiAttributeError
+from opal_security.exceptions import ApiException as ApiException
# import models into sdk package
-from opal_security.models.access import Access
-from opal_security.models.access_list import AccessList
-from opal_security.models.access_rule import AccessRule
-from opal_security.models.add_bundle_group_request import AddBundleGroupRequest
-from opal_security.models.add_bundle_resource_request import AddBundleResourceRequest
-from opal_security.models.add_group_resource_request import AddGroupResourceRequest
-from opal_security.models.add_group_user_request import AddGroupUserRequest
-from opal_security.models.add_resource_nhi_request import AddResourceNhiRequest
-from opal_security.models.add_resource_user_request import AddResourceUserRequest
-from opal_security.models.app import App
-from opal_security.models.app_type_enum import AppTypeEnum
-from opal_security.models.app_validation import AppValidation
-from opal_security.models.app_validation_severity_enum import AppValidationSeverityEnum
-from opal_security.models.app_validation_status_enum import AppValidationStatusEnum
-from opal_security.models.approve_request200_response import ApproveRequest200Response
-from opal_security.models.approve_request_request import ApproveRequestRequest
-from opal_security.models.apps_list import AppsList
-from opal_security.models.aws_permission_set_metadata import AwsPermissionSetMetadata
-from opal_security.models.aws_permission_set_metadata_aws_permission_set import AwsPermissionSetMetadataAwsPermissionSet
-from opal_security.models.bundle import Bundle
-from opal_security.models.bundle_group import BundleGroup
-from opal_security.models.bundle_resource import BundleResource
-from opal_security.models.condition import Condition
-from opal_security.models.configuration_template import ConfigurationTemplate
-from opal_security.models.create_bundle_info import CreateBundleInfo
-from opal_security.models.create_configuration_template_info import CreateConfigurationTemplateInfo
-from opal_security.models.create_delegation_request import CreateDelegationRequest
-from opal_security.models.create_group_binding_info import CreateGroupBindingInfo
-from opal_security.models.create_group_binding_info_groups_inner import CreateGroupBindingInfoGroupsInner
-from opal_security.models.create_group_info import CreateGroupInfo
-from opal_security.models.create_idp_group_mapping_request import CreateIdpGroupMappingRequest
-from opal_security.models.create_message_channel_info import CreateMessageChannelInfo
-from opal_security.models.create_on_call_schedule_info import CreateOnCallScheduleInfo
-from opal_security.models.create_owner_info import CreateOwnerInfo
-from opal_security.models.create_request200_response import CreateRequest200Response
-from opal_security.models.create_request_comment_request import CreateRequestCommentRequest
-from opal_security.models.create_request_configuration_info_list import CreateRequestConfigurationInfoList
-from opal_security.models.create_request_info import CreateRequestInfo
-from opal_security.models.create_request_info_custom_metadata_inner import CreateRequestInfoCustomMetadataInner
-from opal_security.models.create_request_info_groups_inner import CreateRequestInfoGroupsInner
-from opal_security.models.create_request_info_resources_inner import CreateRequestInfoResourcesInner
-from opal_security.models.create_request_info_support_ticket import CreateRequestInfoSupportTicket
-from opal_security.models.create_resource_info import CreateResourceInfo
-from opal_security.models.create_tag_info import CreateTagInfo
-from opal_security.models.create_uar_info import CreateUARInfo
-from opal_security.models.delegation import Delegation
-from opal_security.models.deny_request_request import DenyRequestRequest
-from opal_security.models.entity_type_enum import EntityTypeEnum
-from opal_security.models.event import Event
-from opal_security.models.get_resource_user200_response import GetResourceUser200Response
-from opal_security.models.group import Group
-from opal_security.models.group_access_level import GroupAccessLevel
-from opal_security.models.group_binding import GroupBinding
-from opal_security.models.group_binding_group import GroupBindingGroup
-from opal_security.models.group_containing_group import GroupContainingGroup
-from opal_security.models.group_containing_group_list import GroupContainingGroupList
-from opal_security.models.group_remote_info import GroupRemoteInfo
-from opal_security.models.group_remote_info_active_directory_group import GroupRemoteInfoActiveDirectoryGroup
-from opal_security.models.group_remote_info_azure_ad_microsoft365_group import GroupRemoteInfoAzureAdMicrosoft365Group
-from opal_security.models.group_remote_info_azure_ad_security_group import GroupRemoteInfoAzureAdSecurityGroup
-from opal_security.models.group_remote_info_duo_group import GroupRemoteInfoDuoGroup
-from opal_security.models.group_remote_info_github_team import GroupRemoteInfoGithubTeam
-from opal_security.models.group_remote_info_gitlab_group import GroupRemoteInfoGitlabGroup
-from opal_security.models.group_remote_info_google_group import GroupRemoteInfoGoogleGroup
-from opal_security.models.group_remote_info_ldap_group import GroupRemoteInfoLdapGroup
-from opal_security.models.group_remote_info_okta_group import GroupRemoteInfoOktaGroup
-from opal_security.models.group_remote_info_okta_group_rule import GroupRemoteInfoOktaGroupRule
-from opal_security.models.group_remote_info_snowflake_role import GroupRemoteInfoSnowflakeRole
-from opal_security.models.group_remote_info_workday_user_security_group import GroupRemoteInfoWorkdayUserSecurityGroup
-from opal_security.models.group_resource import GroupResource
-from opal_security.models.group_resource_list import GroupResourceList
-from opal_security.models.group_type_enum import GroupTypeEnum
-from opal_security.models.group_user import GroupUser
-from opal_security.models.group_user_list import GroupUserList
-from opal_security.models.group_with_access_level import GroupWithAccessLevel
-from opal_security.models.idp_group_mapping import IdpGroupMapping
-from opal_security.models.idp_group_mapping_list import IdpGroupMappingList
-from opal_security.models.message_channel import MessageChannel
-from opal_security.models.message_channel_id_list import MessageChannelIDList
-from opal_security.models.message_channel_list import MessageChannelList
-from opal_security.models.message_channel_provider_enum import MessageChannelProviderEnum
-from opal_security.models.on_call_schedule import OnCallSchedule
-from opal_security.models.on_call_schedule_id_list import OnCallScheduleIDList
-from opal_security.models.on_call_schedule_list import OnCallScheduleList
-from opal_security.models.on_call_schedule_provider_enum import OnCallScheduleProviderEnum
-from opal_security.models.owner import Owner
-from opal_security.models.page_info import PageInfo
-from opal_security.models.paginated_assigned_request_list import PaginatedAssignedRequestList
-from opal_security.models.paginated_bundle_group_list import PaginatedBundleGroupList
-from opal_security.models.paginated_bundle_list import PaginatedBundleList
-from opal_security.models.paginated_bundle_resource_list import PaginatedBundleResourceList
-from opal_security.models.paginated_configuration_template_list import PaginatedConfigurationTemplateList
-from opal_security.models.paginated_delegations_list import PaginatedDelegationsList
-from opal_security.models.paginated_event_list import PaginatedEventList
-from opal_security.models.paginated_group_bindings_list import PaginatedGroupBindingsList
-from opal_security.models.paginated_groups_list import PaginatedGroupsList
-from opal_security.models.paginated_owners_list import PaginatedOwnersList
-from opal_security.models.paginated_remote_users_list import PaginatedRemoteUsersList
-from opal_security.models.paginated_resources_list import PaginatedResourcesList
-from opal_security.models.paginated_tags_list import PaginatedTagsList
-from opal_security.models.paginated_uars_list import PaginatedUARsList
-from opal_security.models.paginated_users_list import PaginatedUsersList
-from opal_security.models.propagation_status import PropagationStatus
-from opal_security.models.propagation_status_enum import PropagationStatusEnum
-from opal_security.models.remote_user import RemoteUser
-from opal_security.models.request import Request
-from opal_security.models.request_approval_enum import RequestApprovalEnum
-from opal_security.models.request_comment import RequestComment
-from opal_security.models.request_comment_list import RequestCommentList
-from opal_security.models.request_configuration import RequestConfiguration
-from opal_security.models.request_connection import RequestConnection
-from opal_security.models.request_custom_field_response import RequestCustomFieldResponse
-from opal_security.models.request_custom_field_response_field_value import RequestCustomFieldResponseFieldValue
-from opal_security.models.request_edge import RequestEdge
-from opal_security.models.request_item_stages import RequestItemStages
-from opal_security.models.request_list import RequestList
-from opal_security.models.request_reviewer import RequestReviewer
-from opal_security.models.request_reviewer_stages import RequestReviewerStages
-from opal_security.models.request_stage import RequestStage
-from opal_security.models.request_status_enum import RequestStatusEnum
-from opal_security.models.request_template_custom_field_type_enum import RequestTemplateCustomFieldTypeEnum
-from opal_security.models.requested_item import RequestedItem
-from opal_security.models.resource import Resource
-from opal_security.models.resource_access_level import ResourceAccessLevel
-from opal_security.models.resource_access_user import ResourceAccessUser
-from opal_security.models.resource_access_user_list import ResourceAccessUserList
-from opal_security.models.resource_nhi import ResourceNHI
-from opal_security.models.resource_remote_info import ResourceRemoteInfo
-from opal_security.models.resource_remote_info_anthropic_workspace import ResourceRemoteInfoAnthropicWorkspace
-from opal_security.models.resource_remote_info_aws_account import ResourceRemoteInfoAwsAccount
-from opal_security.models.resource_remote_info_aws_ec2_instance import ResourceRemoteInfoAwsEc2Instance
-from opal_security.models.resource_remote_info_aws_eks_cluster import ResourceRemoteInfoAwsEksCluster
-from opal_security.models.resource_remote_info_aws_iam_role import ResourceRemoteInfoAwsIamRole
-from opal_security.models.resource_remote_info_aws_organizational_unit import ResourceRemoteInfoAwsOrganizationalUnit
-from opal_security.models.resource_remote_info_aws_permission_set import ResourceRemoteInfoAwsPermissionSet
-from opal_security.models.resource_remote_info_aws_rds_instance import ResourceRemoteInfoAwsRdsInstance
-from opal_security.models.resource_remote_info_azure_enterprise_app import ResourceRemoteInfoAzureEnterpriseApp
-from opal_security.models.resource_remote_info_azure_entra_id_role import ResourceRemoteInfoAzureEntraIdRole
-from opal_security.models.resource_remote_info_azure_management_group import ResourceRemoteInfoAzureManagementGroup
-from opal_security.models.resource_remote_info_azure_resource_group import ResourceRemoteInfoAzureResourceGroup
-from opal_security.models.resource_remote_info_azure_sql_database import ResourceRemoteInfoAzureSqlDatabase
-from opal_security.models.resource_remote_info_azure_sql_managed_database import ResourceRemoteInfoAzureSqlManagedDatabase
-from opal_security.models.resource_remote_info_azure_sql_managed_instance import ResourceRemoteInfoAzureSqlManagedInstance
-from opal_security.models.resource_remote_info_azure_sql_server import ResourceRemoteInfoAzureSqlServer
-from opal_security.models.resource_remote_info_azure_storage_account import ResourceRemoteInfoAzureStorageAccount
-from opal_security.models.resource_remote_info_azure_storage_container import ResourceRemoteInfoAzureStorageContainer
-from opal_security.models.resource_remote_info_azure_subscription import ResourceRemoteInfoAzureSubscription
-from opal_security.models.resource_remote_info_azure_user_assigned_managed_identity import ResourceRemoteInfoAzureUserAssignedManagedIdentity
-from opal_security.models.resource_remote_info_azure_virtual_machine import ResourceRemoteInfoAzureVirtualMachine
-from opal_security.models.resource_remote_info_coupa_role import ResourceRemoteInfoCoupaRole
-from opal_security.models.resource_remote_info_cursor_organization import ResourceRemoteInfoCursorOrganization
-from opal_security.models.resource_remote_info_custom_connector import ResourceRemoteInfoCustomConnector
-from opal_security.models.resource_remote_info_datastax_astra_role import ResourceRemoteInfoDatastaxAstraRole
-from opal_security.models.resource_remote_info_gcp_big_query_dataset import ResourceRemoteInfoGcpBigQueryDataset
-from opal_security.models.resource_remote_info_gcp_big_query_table import ResourceRemoteInfoGcpBigQueryTable
-from opal_security.models.resource_remote_info_gcp_bucket import ResourceRemoteInfoGcpBucket
-from opal_security.models.resource_remote_info_gcp_compute_instance import ResourceRemoteInfoGcpComputeInstance
-from opal_security.models.resource_remote_info_gcp_folder import ResourceRemoteInfoGcpFolder
-from opal_security.models.resource_remote_info_gcp_gke_cluster import ResourceRemoteInfoGcpGkeCluster
-from opal_security.models.resource_remote_info_gcp_organization import ResourceRemoteInfoGcpOrganization
-from opal_security.models.resource_remote_info_gcp_project import ResourceRemoteInfoGcpProject
-from opal_security.models.resource_remote_info_gcp_service_account import ResourceRemoteInfoGcpServiceAccount
-from opal_security.models.resource_remote_info_gcp_sql_instance import ResourceRemoteInfoGcpSqlInstance
-from opal_security.models.resource_remote_info_github_org import ResourceRemoteInfoGithubOrg
-from opal_security.models.resource_remote_info_github_org_role import ResourceRemoteInfoGithubOrgRole
-from opal_security.models.resource_remote_info_github_repo import ResourceRemoteInfoGithubRepo
-from opal_security.models.resource_remote_info_gitlab_project import ResourceRemoteInfoGitlabProject
-from opal_security.models.resource_remote_info_google_workspace_role import ResourceRemoteInfoGoogleWorkspaceRole
-from opal_security.models.resource_remote_info_okta_app import ResourceRemoteInfoOktaApp
-from opal_security.models.resource_remote_info_okta_custom_role import ResourceRemoteInfoOktaCustomRole
-from opal_security.models.resource_remote_info_okta_standard_role import ResourceRemoteInfoOktaStandardRole
-from opal_security.models.resource_remote_info_openai_platform_project import ResourceRemoteInfoOpenaiPlatformProject
-from opal_security.models.resource_remote_info_openai_platform_service_account import ResourceRemoteInfoOpenaiPlatformServiceAccount
-from opal_security.models.resource_remote_info_oracle_fusion_role import ResourceRemoteInfoOracleFusionRole
-from opal_security.models.resource_remote_info_pagerduty_role import ResourceRemoteInfoPagerdutyRole
-from opal_security.models.resource_remote_info_salesforce_permission_set import ResourceRemoteInfoSalesforcePermissionSet
-from opal_security.models.resource_remote_info_salesforce_profile import ResourceRemoteInfoSalesforceProfile
-from opal_security.models.resource_remote_info_salesforce_role import ResourceRemoteInfoSalesforceRole
-from opal_security.models.resource_remote_info_teleport_role import ResourceRemoteInfoTeleportRole
-from opal_security.models.resource_type_enum import ResourceTypeEnum
-from opal_security.models.resource_user import ResourceUser
-from opal_security.models.resource_user_access_status import ResourceUserAccessStatus
-from opal_security.models.resource_user_access_status_enum import ResourceUserAccessStatusEnum
-from opal_security.models.resource_with_access_level import ResourceWithAccessLevel
-from opal_security.models.review_stage_operator import ReviewStageOperator
-from opal_security.models.reviewer_id_list import ReviewerIDList
-from opal_security.models.reviewer_stage import ReviewerStage
-from opal_security.models.reviewer_stage_list import ReviewerStageList
-from opal_security.models.risk_sensitivity_enum import RiskSensitivityEnum
-from opal_security.models.role_permission_name_enum import RolePermissionNameEnum
-from opal_security.models.role_permission_target_type_enum import RolePermissionTargetTypeEnum
-from opal_security.models.rule_clauses import RuleClauses
-from opal_security.models.rule_conjunction import RuleConjunction
-from opal_security.models.rule_disjunction import RuleDisjunction
-from opal_security.models.scoped_role_permission import ScopedRolePermission
-from opal_security.models.scoped_role_permission_list import ScopedRolePermissionList
-from opal_security.models.session import Session
-from opal_security.models.sessions_list import SessionsList
-from opal_security.models.sub_event import SubEvent
-from opal_security.models.sync_error import SyncError
-from opal_security.models.sync_error_list import SyncErrorList
-from opal_security.models.sync_task import SyncTask
-from opal_security.models.tag import Tag
-from opal_security.models.tag_filter import TagFilter
-from opal_security.models.tag_selector import TagSelector
-from opal_security.models.tags_list import TagsList
-from opal_security.models.third_party_provider_enum import ThirdPartyProviderEnum
-from opal_security.models.ticket_propagation_configuration import TicketPropagationConfiguration
-from opal_security.models.ticketing_provider_enum import TicketingProviderEnum
-from opal_security.models.uar import UAR
-from opal_security.models.uar_reviewer_assignment_policy_enum import UARReviewerAssignmentPolicyEnum
-from opal_security.models.uar_scope import UARScope
-from opal_security.models.update_access_rule_info import UpdateAccessRuleInfo
-from opal_security.models.update_configuration_template_info import UpdateConfigurationTemplateInfo
-from opal_security.models.update_group_binding_info import UpdateGroupBindingInfo
-from opal_security.models.update_group_binding_info_list import UpdateGroupBindingInfoList
-from opal_security.models.update_group_info import UpdateGroupInfo
-from opal_security.models.update_group_info_list import UpdateGroupInfoList
-from opal_security.models.update_group_resources_info import UpdateGroupResourcesInfo
-from opal_security.models.update_group_user_request import UpdateGroupUserRequest
-from opal_security.models.update_idp_group_mappings_request import UpdateIdpGroupMappingsRequest
-from opal_security.models.update_idp_group_mappings_request_mappings_inner import UpdateIdpGroupMappingsRequestMappingsInner
-from opal_security.models.update_owner_info import UpdateOwnerInfo
-from opal_security.models.update_owner_info_list import UpdateOwnerInfoList
-from opal_security.models.update_resource_info import UpdateResourceInfo
-from opal_security.models.update_resource_info_list import UpdateResourceInfoList
-from opal_security.models.update_resource_user_request import UpdateResourceUserRequest
-from opal_security.models.user import User
-from opal_security.models.user_hr_idp_status_enum import UserHrIdpStatusEnum
-from opal_security.models.user_id_list import UserIDList
-from opal_security.models.user_list import UserList
-from opal_security.models.visibility_info import VisibilityInfo
-from opal_security.models.visibility_type_enum import VisibilityTypeEnum
+from opal_security.models.access import Access as Access
+from opal_security.models.access_list import AccessList as AccessList
+from opal_security.models.access_rule import AccessRule as AccessRule
+from opal_security.models.add_bundle_group_request import AddBundleGroupRequest as AddBundleGroupRequest
+from opal_security.models.add_bundle_resource_request import AddBundleResourceRequest as AddBundleResourceRequest
+from opal_security.models.add_group_resource_request import AddGroupResourceRequest as AddGroupResourceRequest
+from opal_security.models.add_group_user_request import AddGroupUserRequest as AddGroupUserRequest
+from opal_security.models.add_resource_nhi_request import AddResourceNhiRequest as AddResourceNhiRequest
+from opal_security.models.add_resource_user_request import AddResourceUserRequest as AddResourceUserRequest
+from opal_security.models.app import App as App
+from opal_security.models.app_type_enum import AppTypeEnum as AppTypeEnum
+from opal_security.models.app_validation import AppValidation as AppValidation
+from opal_security.models.app_validation_severity_enum import AppValidationSeverityEnum as AppValidationSeverityEnum
+from opal_security.models.app_validation_status_enum import AppValidationStatusEnum as AppValidationStatusEnum
+from opal_security.models.approve_request200_response import ApproveRequest200Response as ApproveRequest200Response
+from opal_security.models.approve_request_request import ApproveRequestRequest as ApproveRequestRequest
+from opal_security.models.apps_list import AppsList as AppsList
+from opal_security.models.aws_permission_set_metadata import AwsPermissionSetMetadata as AwsPermissionSetMetadata
+from opal_security.models.aws_permission_set_metadata_aws_permission_set import AwsPermissionSetMetadataAwsPermissionSet as AwsPermissionSetMetadataAwsPermissionSet
+from opal_security.models.bundle import Bundle as Bundle
+from opal_security.models.bundle_group import BundleGroup as BundleGroup
+from opal_security.models.bundle_resource import BundleResource as BundleResource
+from opal_security.models.condition import Condition as Condition
+from opal_security.models.configuration_template import ConfigurationTemplate as ConfigurationTemplate
+from opal_security.models.create_bundle_info import CreateBundleInfo as CreateBundleInfo
+from opal_security.models.create_configuration_template_info import CreateConfigurationTemplateInfo as CreateConfigurationTemplateInfo
+from opal_security.models.create_delegation_request import CreateDelegationRequest as CreateDelegationRequest
+from opal_security.models.create_group_binding_info import CreateGroupBindingInfo as CreateGroupBindingInfo
+from opal_security.models.create_group_binding_info_groups_inner import CreateGroupBindingInfoGroupsInner as CreateGroupBindingInfoGroupsInner
+from opal_security.models.create_group_info import CreateGroupInfo as CreateGroupInfo
+from opal_security.models.create_idp_group_mapping_request import CreateIdpGroupMappingRequest as CreateIdpGroupMappingRequest
+from opal_security.models.create_message_channel_info import CreateMessageChannelInfo as CreateMessageChannelInfo
+from opal_security.models.create_on_call_schedule_info import CreateOnCallScheduleInfo as CreateOnCallScheduleInfo
+from opal_security.models.create_owner_info import CreateOwnerInfo as CreateOwnerInfo
+from opal_security.models.create_request200_response import CreateRequest200Response as CreateRequest200Response
+from opal_security.models.create_request_comment_request import CreateRequestCommentRequest as CreateRequestCommentRequest
+from opal_security.models.create_request_configuration_info_list import CreateRequestConfigurationInfoList as CreateRequestConfigurationInfoList
+from opal_security.models.create_request_info import CreateRequestInfo as CreateRequestInfo
+from opal_security.models.create_request_info_custom_metadata_inner import CreateRequestInfoCustomMetadataInner as CreateRequestInfoCustomMetadataInner
+from opal_security.models.create_request_info_groups_inner import CreateRequestInfoGroupsInner as CreateRequestInfoGroupsInner
+from opal_security.models.create_request_info_resources_inner import CreateRequestInfoResourcesInner as CreateRequestInfoResourcesInner
+from opal_security.models.create_request_info_support_ticket import CreateRequestInfoSupportTicket as CreateRequestInfoSupportTicket
+from opal_security.models.create_resource_info import CreateResourceInfo as CreateResourceInfo
+from opal_security.models.create_tag_info import CreateTagInfo as CreateTagInfo
+from opal_security.models.create_uar_info import CreateUARInfo as CreateUARInfo
+from opal_security.models.delegation import Delegation as Delegation
+from opal_security.models.deny_request_request import DenyRequestRequest as DenyRequestRequest
+from opal_security.models.entity_type_enum import EntityTypeEnum as EntityTypeEnum
+from opal_security.models.event import Event as Event
+from opal_security.models.get_resource_user200_response import GetResourceUser200Response as GetResourceUser200Response
+from opal_security.models.group import Group as Group
+from opal_security.models.group_access_level import GroupAccessLevel as GroupAccessLevel
+from opal_security.models.group_binding import GroupBinding as GroupBinding
+from opal_security.models.group_binding_group import GroupBindingGroup as GroupBindingGroup
+from opal_security.models.group_containing_group import GroupContainingGroup as GroupContainingGroup
+from opal_security.models.group_containing_group_list import GroupContainingGroupList as GroupContainingGroupList
+from opal_security.models.group_remote_info import GroupRemoteInfo as GroupRemoteInfo
+from opal_security.models.group_remote_info_active_directory_group import GroupRemoteInfoActiveDirectoryGroup as GroupRemoteInfoActiveDirectoryGroup
+from opal_security.models.group_remote_info_aws_sso_group import GroupRemoteInfoAwsSsoGroup as GroupRemoteInfoAwsSsoGroup
+from opal_security.models.group_remote_info_azure_ad_microsoft365_group import GroupRemoteInfoAzureAdMicrosoft365Group as GroupRemoteInfoAzureAdMicrosoft365Group
+from opal_security.models.group_remote_info_azure_ad_security_group import GroupRemoteInfoAzureAdSecurityGroup as GroupRemoteInfoAzureAdSecurityGroup
+from opal_security.models.group_remote_info_connector_group import GroupRemoteInfoConnectorGroup as GroupRemoteInfoConnectorGroup
+from opal_security.models.group_remote_info_databricks_account_group import GroupRemoteInfoDatabricksAccountGroup as GroupRemoteInfoDatabricksAccountGroup
+from opal_security.models.group_remote_info_devin_group import GroupRemoteInfoDevinGroup as GroupRemoteInfoDevinGroup
+from opal_security.models.group_remote_info_duo_group import GroupRemoteInfoDuoGroup as GroupRemoteInfoDuoGroup
+from opal_security.models.group_remote_info_github_team import GroupRemoteInfoGithubTeam as GroupRemoteInfoGithubTeam
+from opal_security.models.group_remote_info_gitlab_group import GroupRemoteInfoGitlabGroup as GroupRemoteInfoGitlabGroup
+from opal_security.models.group_remote_info_google_group import GroupRemoteInfoGoogleGroup as GroupRemoteInfoGoogleGroup
+from opal_security.models.group_remote_info_incidentio_on_call_schedule import GroupRemoteInfoIncidentioOnCallSchedule as GroupRemoteInfoIncidentioOnCallSchedule
+from opal_security.models.group_remote_info_ldap_group import GroupRemoteInfoLdapGroup as GroupRemoteInfoLdapGroup
+from opal_security.models.group_remote_info_okta_group import GroupRemoteInfoOktaGroup as GroupRemoteInfoOktaGroup
+from opal_security.models.group_remote_info_okta_group_rule import GroupRemoteInfoOktaGroupRule as GroupRemoteInfoOktaGroupRule
+from opal_security.models.group_remote_info_pagerduty_on_call_schedule import GroupRemoteInfoPagerdutyOnCallSchedule as GroupRemoteInfoPagerdutyOnCallSchedule
+from opal_security.models.group_remote_info_rootly_on_call_schedule import GroupRemoteInfoRootlyOnCallSchedule as GroupRemoteInfoRootlyOnCallSchedule
+from opal_security.models.group_remote_info_snowflake_role import GroupRemoteInfoSnowflakeRole as GroupRemoteInfoSnowflakeRole
+from opal_security.models.group_remote_info_tailscale_group import GroupRemoteInfoTailscaleGroup as GroupRemoteInfoTailscaleGroup
+from opal_security.models.group_remote_info_workday_user_security_group import GroupRemoteInfoWorkdayUserSecurityGroup as GroupRemoteInfoWorkdayUserSecurityGroup
+from opal_security.models.group_resource import GroupResource as GroupResource
+from opal_security.models.group_resource_list import GroupResourceList as GroupResourceList
+from opal_security.models.group_type_enum import GroupTypeEnum as GroupTypeEnum
+from opal_security.models.group_user import GroupUser as GroupUser
+from opal_security.models.group_user_list import GroupUserList as GroupUserList
+from opal_security.models.group_with_access_level import GroupWithAccessLevel as GroupWithAccessLevel
+from opal_security.models.idp_group_mapping import IdpGroupMapping as IdpGroupMapping
+from opal_security.models.idp_group_mapping_list import IdpGroupMappingList as IdpGroupMappingList
+from opal_security.models.message_channel import MessageChannel as MessageChannel
+from opal_security.models.message_channel_id_list import MessageChannelIDList as MessageChannelIDList
+from opal_security.models.message_channel_list import MessageChannelList as MessageChannelList
+from opal_security.models.message_channel_provider_enum import MessageChannelProviderEnum as MessageChannelProviderEnum
+from opal_security.models.on_call_schedule import OnCallSchedule as OnCallSchedule
+from opal_security.models.on_call_schedule_id_list import OnCallScheduleIDList as OnCallScheduleIDList
+from opal_security.models.on_call_schedule_list import OnCallScheduleList as OnCallScheduleList
+from opal_security.models.on_call_schedule_provider_enum import OnCallScheduleProviderEnum as OnCallScheduleProviderEnum
+from opal_security.models.owner import Owner as Owner
+from opal_security.models.page_info import PageInfo as PageInfo
+from opal_security.models.paginated_assigned_request_list import PaginatedAssignedRequestList as PaginatedAssignedRequestList
+from opal_security.models.paginated_bundle_group_list import PaginatedBundleGroupList as PaginatedBundleGroupList
+from opal_security.models.paginated_bundle_list import PaginatedBundleList as PaginatedBundleList
+from opal_security.models.paginated_bundle_resource_list import PaginatedBundleResourceList as PaginatedBundleResourceList
+from opal_security.models.paginated_configuration_template_list import PaginatedConfigurationTemplateList as PaginatedConfigurationTemplateList
+from opal_security.models.paginated_delegations_list import PaginatedDelegationsList as PaginatedDelegationsList
+from opal_security.models.paginated_event_list import PaginatedEventList as PaginatedEventList
+from opal_security.models.paginated_group_bindings_list import PaginatedGroupBindingsList as PaginatedGroupBindingsList
+from opal_security.models.paginated_groups_list import PaginatedGroupsList as PaginatedGroupsList
+from opal_security.models.paginated_owners_list import PaginatedOwnersList as PaginatedOwnersList
+from opal_security.models.paginated_remote_users_list import PaginatedRemoteUsersList as PaginatedRemoteUsersList
+from opal_security.models.paginated_resources_list import PaginatedResourcesList as PaginatedResourcesList
+from opal_security.models.paginated_tags_list import PaginatedTagsList as PaginatedTagsList
+from opal_security.models.paginated_uars_list import PaginatedUARsList as PaginatedUARsList
+from opal_security.models.paginated_users_list import PaginatedUsersList as PaginatedUsersList
+from opal_security.models.propagation_status import PropagationStatus as PropagationStatus
+from opal_security.models.propagation_status_enum import PropagationStatusEnum as PropagationStatusEnum
+from opal_security.models.rds_engine_enum import RDSEngineEnum as RDSEngineEnum
+from opal_security.models.remote_user import RemoteUser as RemoteUser
+from opal_security.models.request import Request as Request
+from opal_security.models.request_approval_enum import RequestApprovalEnum as RequestApprovalEnum
+from opal_security.models.request_comment import RequestComment as RequestComment
+from opal_security.models.request_comment_list import RequestCommentList as RequestCommentList
+from opal_security.models.request_configuration import RequestConfiguration as RequestConfiguration
+from opal_security.models.request_connection import RequestConnection as RequestConnection
+from opal_security.models.request_custom_field_response import RequestCustomFieldResponse as RequestCustomFieldResponse
+from opal_security.models.request_custom_field_response_field_value import RequestCustomFieldResponseFieldValue as RequestCustomFieldResponseFieldValue
+from opal_security.models.request_edge import RequestEdge as RequestEdge
+from opal_security.models.request_item_stages import RequestItemStages as RequestItemStages
+from opal_security.models.request_list import RequestList as RequestList
+from opal_security.models.request_reviewer import RequestReviewer as RequestReviewer
+from opal_security.models.request_reviewer_stages import RequestReviewerStages as RequestReviewerStages
+from opal_security.models.request_stage import RequestStage as RequestStage
+from opal_security.models.request_status_enum import RequestStatusEnum as RequestStatusEnum
+from opal_security.models.request_template_custom_field_type_enum import RequestTemplateCustomFieldTypeEnum as RequestTemplateCustomFieldTypeEnum
+from opal_security.models.requested_item import RequestedItem as RequestedItem
+from opal_security.models.resource import Resource as Resource
+from opal_security.models.resource_access_level import ResourceAccessLevel as ResourceAccessLevel
+from opal_security.models.resource_access_user import ResourceAccessUser as ResourceAccessUser
+from opal_security.models.resource_access_user_list import ResourceAccessUserList as ResourceAccessUserList
+from opal_security.models.resource_nhi import ResourceNHI as ResourceNHI
+from opal_security.models.resource_remote_info import ResourceRemoteInfo as ResourceRemoteInfo
+from opal_security.models.resource_remote_info_anthropic_workspace import ResourceRemoteInfoAnthropicWorkspace as ResourceRemoteInfoAnthropicWorkspace
+from opal_security.models.resource_remote_info_aws_account import ResourceRemoteInfoAwsAccount as ResourceRemoteInfoAwsAccount
+from opal_security.models.resource_remote_info_aws_ec2_instance import ResourceRemoteInfoAwsEc2Instance as ResourceRemoteInfoAwsEc2Instance
+from opal_security.models.resource_remote_info_aws_eks_cluster import ResourceRemoteInfoAwsEksCluster as ResourceRemoteInfoAwsEksCluster
+from opal_security.models.resource_remote_info_aws_iam_role import ResourceRemoteInfoAwsIamRole as ResourceRemoteInfoAwsIamRole
+from opal_security.models.resource_remote_info_aws_organizational_unit import ResourceRemoteInfoAwsOrganizationalUnit as ResourceRemoteInfoAwsOrganizationalUnit
+from opal_security.models.resource_remote_info_aws_permission_set import ResourceRemoteInfoAwsPermissionSet as ResourceRemoteInfoAwsPermissionSet
+from opal_security.models.resource_remote_info_aws_rds_cluster import ResourceRemoteInfoAwsRdsCluster as ResourceRemoteInfoAwsRdsCluster
+from opal_security.models.resource_remote_info_aws_rds_instance import ResourceRemoteInfoAwsRdsInstance as ResourceRemoteInfoAwsRdsInstance
+from opal_security.models.resource_remote_info_azure_enterprise_app import ResourceRemoteInfoAzureEnterpriseApp as ResourceRemoteInfoAzureEnterpriseApp
+from opal_security.models.resource_remote_info_azure_entra_id_role import ResourceRemoteInfoAzureEntraIdRole as ResourceRemoteInfoAzureEntraIdRole
+from opal_security.models.resource_remote_info_azure_management_group import ResourceRemoteInfoAzureManagementGroup as ResourceRemoteInfoAzureManagementGroup
+from opal_security.models.resource_remote_info_azure_resource_group import ResourceRemoteInfoAzureResourceGroup as ResourceRemoteInfoAzureResourceGroup
+from opal_security.models.resource_remote_info_azure_sql_database import ResourceRemoteInfoAzureSqlDatabase as ResourceRemoteInfoAzureSqlDatabase
+from opal_security.models.resource_remote_info_azure_sql_managed_database import ResourceRemoteInfoAzureSqlManagedDatabase as ResourceRemoteInfoAzureSqlManagedDatabase
+from opal_security.models.resource_remote_info_azure_sql_managed_instance import ResourceRemoteInfoAzureSqlManagedInstance as ResourceRemoteInfoAzureSqlManagedInstance
+from opal_security.models.resource_remote_info_azure_sql_server import ResourceRemoteInfoAzureSqlServer as ResourceRemoteInfoAzureSqlServer
+from opal_security.models.resource_remote_info_azure_storage_account import ResourceRemoteInfoAzureStorageAccount as ResourceRemoteInfoAzureStorageAccount
+from opal_security.models.resource_remote_info_azure_storage_container import ResourceRemoteInfoAzureStorageContainer as ResourceRemoteInfoAzureStorageContainer
+from opal_security.models.resource_remote_info_azure_subscription import ResourceRemoteInfoAzureSubscription as ResourceRemoteInfoAzureSubscription
+from opal_security.models.resource_remote_info_azure_user_assigned_managed_identity import ResourceRemoteInfoAzureUserAssignedManagedIdentity as ResourceRemoteInfoAzureUserAssignedManagedIdentity
+from opal_security.models.resource_remote_info_azure_virtual_machine import ResourceRemoteInfoAzureVirtualMachine as ResourceRemoteInfoAzureVirtualMachine
+from opal_security.models.resource_remote_info_coupa_role import ResourceRemoteInfoCoupaRole as ResourceRemoteInfoCoupaRole
+from opal_security.models.resource_remote_info_cursor_organization import ResourceRemoteInfoCursorOrganization as ResourceRemoteInfoCursorOrganization
+from opal_security.models.resource_remote_info_custom_connector import ResourceRemoteInfoCustomConnector as ResourceRemoteInfoCustomConnector
+from opal_security.models.resource_remote_info_databricks_account_service_principal import ResourceRemoteInfoDatabricksAccountServicePrincipal as ResourceRemoteInfoDatabricksAccountServicePrincipal
+from opal_security.models.resource_remote_info_datastax_astra_role import ResourceRemoteInfoDatastaxAstraRole as ResourceRemoteInfoDatastaxAstraRole
+from opal_security.models.resource_remote_info_devin_organization import ResourceRemoteInfoDevinOrganization as ResourceRemoteInfoDevinOrganization
+from opal_security.models.resource_remote_info_devin_role import ResourceRemoteInfoDevinRole as ResourceRemoteInfoDevinRole
+from opal_security.models.resource_remote_info_gcp_big_query_dataset import ResourceRemoteInfoGcpBigQueryDataset as ResourceRemoteInfoGcpBigQueryDataset
+from opal_security.models.resource_remote_info_gcp_big_query_table import ResourceRemoteInfoGcpBigQueryTable as ResourceRemoteInfoGcpBigQueryTable
+from opal_security.models.resource_remote_info_gcp_bucket import ResourceRemoteInfoGcpBucket as ResourceRemoteInfoGcpBucket
+from opal_security.models.resource_remote_info_gcp_compute_instance import ResourceRemoteInfoGcpComputeInstance as ResourceRemoteInfoGcpComputeInstance
+from opal_security.models.resource_remote_info_gcp_folder import ResourceRemoteInfoGcpFolder as ResourceRemoteInfoGcpFolder
+from opal_security.models.resource_remote_info_gcp_gke_cluster import ResourceRemoteInfoGcpGkeCluster as ResourceRemoteInfoGcpGkeCluster
+from opal_security.models.resource_remote_info_gcp_organization import ResourceRemoteInfoGcpOrganization as ResourceRemoteInfoGcpOrganization
+from opal_security.models.resource_remote_info_gcp_project import ResourceRemoteInfoGcpProject as ResourceRemoteInfoGcpProject
+from opal_security.models.resource_remote_info_gcp_service_account import ResourceRemoteInfoGcpServiceAccount as ResourceRemoteInfoGcpServiceAccount
+from opal_security.models.resource_remote_info_gcp_sql_instance import ResourceRemoteInfoGcpSqlInstance as ResourceRemoteInfoGcpSqlInstance
+from opal_security.models.resource_remote_info_github_org import ResourceRemoteInfoGithubOrg as ResourceRemoteInfoGithubOrg
+from opal_security.models.resource_remote_info_github_org_role import ResourceRemoteInfoGithubOrgRole as ResourceRemoteInfoGithubOrgRole
+from opal_security.models.resource_remote_info_github_repo import ResourceRemoteInfoGithubRepo as ResourceRemoteInfoGithubRepo
+from opal_security.models.resource_remote_info_gitlab_project import ResourceRemoteInfoGitlabProject as ResourceRemoteInfoGitlabProject
+from opal_security.models.resource_remote_info_google_workspace_role import ResourceRemoteInfoGoogleWorkspaceRole as ResourceRemoteInfoGoogleWorkspaceRole
+from opal_security.models.resource_remote_info_ilevel_advanced_role import ResourceRemoteInfoIlevelAdvancedRole as ResourceRemoteInfoIlevelAdvancedRole
+from opal_security.models.resource_remote_info_okta_app import ResourceRemoteInfoOktaApp as ResourceRemoteInfoOktaApp
+from opal_security.models.resource_remote_info_okta_custom_role import ResourceRemoteInfoOktaCustomRole as ResourceRemoteInfoOktaCustomRole
+from opal_security.models.resource_remote_info_okta_standard_role import ResourceRemoteInfoOktaStandardRole as ResourceRemoteInfoOktaStandardRole
+from opal_security.models.resource_remote_info_openai_platform_project import ResourceRemoteInfoOpenaiPlatformProject as ResourceRemoteInfoOpenaiPlatformProject
+from opal_security.models.resource_remote_info_openai_platform_service_account import ResourceRemoteInfoOpenaiPlatformServiceAccount as ResourceRemoteInfoOpenaiPlatformServiceAccount
+from opal_security.models.resource_remote_info_oracle_fusion_role import ResourceRemoteInfoOracleFusionRole as ResourceRemoteInfoOracleFusionRole
+from opal_security.models.resource_remote_info_pagerduty_role import ResourceRemoteInfoPagerdutyRole as ResourceRemoteInfoPagerdutyRole
+from opal_security.models.resource_remote_info_salesforce_permission_set import ResourceRemoteInfoSalesforcePermissionSet as ResourceRemoteInfoSalesforcePermissionSet
+from opal_security.models.resource_remote_info_salesforce_profile import ResourceRemoteInfoSalesforceProfile as ResourceRemoteInfoSalesforceProfile
+from opal_security.models.resource_remote_info_salesforce_role import ResourceRemoteInfoSalesforceRole as ResourceRemoteInfoSalesforceRole
+from opal_security.models.resource_remote_info_snowflake_database import ResourceRemoteInfoSnowflakeDatabase as ResourceRemoteInfoSnowflakeDatabase
+from opal_security.models.resource_remote_info_snowflake_schema import ResourceRemoteInfoSnowflakeSchema as ResourceRemoteInfoSnowflakeSchema
+from opal_security.models.resource_remote_info_snowflake_table import ResourceRemoteInfoSnowflakeTable as ResourceRemoteInfoSnowflakeTable
+from opal_security.models.resource_remote_info_tailscale_ssh import ResourceRemoteInfoTailscaleSsh as ResourceRemoteInfoTailscaleSsh
+from opal_security.models.resource_remote_info_teleport_role import ResourceRemoteInfoTeleportRole as ResourceRemoteInfoTeleportRole
+from opal_security.models.resource_remote_info_workday_role import ResourceRemoteInfoWorkdayRole as ResourceRemoteInfoWorkdayRole
+from opal_security.models.resource_type_enum import ResourceTypeEnum as ResourceTypeEnum
+from opal_security.models.resource_user import ResourceUser as ResourceUser
+from opal_security.models.resource_user_access_status import ResourceUserAccessStatus as ResourceUserAccessStatus
+from opal_security.models.resource_user_access_status_enum import ResourceUserAccessStatusEnum as ResourceUserAccessStatusEnum
+from opal_security.models.resource_with_access_level import ResourceWithAccessLevel as ResourceWithAccessLevel
+from opal_security.models.review_stage_operator import ReviewStageOperator as ReviewStageOperator
+from opal_security.models.reviewer_id_list import ReviewerIDList as ReviewerIDList
+from opal_security.models.reviewer_stage import ReviewerStage as ReviewerStage
+from opal_security.models.reviewer_stage_list import ReviewerStageList as ReviewerStageList
+from opal_security.models.risk_sensitivity_enum import RiskSensitivityEnum as RiskSensitivityEnum
+from opal_security.models.role_permission_name_enum import RolePermissionNameEnum as RolePermissionNameEnum
+from opal_security.models.role_permission_target_type_enum import RolePermissionTargetTypeEnum as RolePermissionTargetTypeEnum
+from opal_security.models.rule_clauses import RuleClauses as RuleClauses
+from opal_security.models.rule_conjunction import RuleConjunction as RuleConjunction
+from opal_security.models.rule_disjunction import RuleDisjunction as RuleDisjunction
+from opal_security.models.scoped_role_permission import ScopedRolePermission as ScopedRolePermission
+from opal_security.models.scoped_role_permission_list import ScopedRolePermissionList as ScopedRolePermissionList
+from opal_security.models.session import Session as Session
+from opal_security.models.sessions_list import SessionsList as SessionsList
+from opal_security.models.sub_event import SubEvent as SubEvent
+from opal_security.models.sync_error import SyncError as SyncError
+from opal_security.models.sync_error_list import SyncErrorList as SyncErrorList
+from opal_security.models.sync_task import SyncTask as SyncTask
+from opal_security.models.tag import Tag as Tag
+from opal_security.models.tag_filter import TagFilter as TagFilter
+from opal_security.models.tag_selector import TagSelector as TagSelector
+from opal_security.models.tags_list import TagsList as TagsList
+from opal_security.models.third_party_provider_enum import ThirdPartyProviderEnum as ThirdPartyProviderEnum
+from opal_security.models.ticket_propagation_configuration import TicketPropagationConfiguration as TicketPropagationConfiguration
+from opal_security.models.ticketing_provider_enum import TicketingProviderEnum as TicketingProviderEnum
+from opal_security.models.uar import UAR as UAR
+from opal_security.models.uar_reviewer_assignment_policy_enum import UARReviewerAssignmentPolicyEnum as UARReviewerAssignmentPolicyEnum
+from opal_security.models.uar_scope import UARScope as UARScope
+from opal_security.models.update_access_rule_info import UpdateAccessRuleInfo as UpdateAccessRuleInfo
+from opal_security.models.update_configuration_template_info import UpdateConfigurationTemplateInfo as UpdateConfigurationTemplateInfo
+from opal_security.models.update_group_binding_info import UpdateGroupBindingInfo as UpdateGroupBindingInfo
+from opal_security.models.update_group_binding_info_list import UpdateGroupBindingInfoList as UpdateGroupBindingInfoList
+from opal_security.models.update_group_info import UpdateGroupInfo as UpdateGroupInfo
+from opal_security.models.update_group_info_list import UpdateGroupInfoList as UpdateGroupInfoList
+from opal_security.models.update_group_resources_info import UpdateGroupResourcesInfo as UpdateGroupResourcesInfo
+from opal_security.models.update_group_user_request import UpdateGroupUserRequest as UpdateGroupUserRequest
+from opal_security.models.update_idp_group_mappings_request import UpdateIdpGroupMappingsRequest as UpdateIdpGroupMappingsRequest
+from opal_security.models.update_idp_group_mappings_request_mappings_inner import UpdateIdpGroupMappingsRequestMappingsInner as UpdateIdpGroupMappingsRequestMappingsInner
+from opal_security.models.update_owner_info import UpdateOwnerInfo as UpdateOwnerInfo
+from opal_security.models.update_owner_info_list import UpdateOwnerInfoList as UpdateOwnerInfoList
+from opal_security.models.update_resource_info import UpdateResourceInfo as UpdateResourceInfo
+from opal_security.models.update_resource_info_list import UpdateResourceInfoList as UpdateResourceInfoList
+from opal_security.models.update_resource_user_request import UpdateResourceUserRequest as UpdateResourceUserRequest
+from opal_security.models.user import User as User
+from opal_security.models.user_hr_idp_status_enum import UserHrIdpStatusEnum as UserHrIdpStatusEnum
+from opal_security.models.user_id_list import UserIDList as UserIDList
+from opal_security.models.user_list import UserList as UserList
+from opal_security.models.visibility_info import VisibilityInfo as VisibilityInfo
+from opal_security.models.visibility_type_enum import VisibilityTypeEnum as VisibilityTypeEnum
+
diff --git a/opal_security/api/access_rules_api.py b/opal_security/api/access_rules_api.py
index 0255fdc..6d6936a 100644
--- a/opal_security/api/access_rules_api.py
+++ b/opal_security/api/access_rules_api.py
@@ -17,8 +17,9 @@
from typing import Any, Dict, List, Optional, Tuple, Union
from typing_extensions import Annotated
-from pydantic import Field, StrictStr
+from pydantic import Field
from typing_extensions import Annotated
+from uuid import UUID
from opal_security.models.access_rule import AccessRule
from opal_security.models.update_access_rule_info import UpdateAccessRuleInfo
@@ -317,7 +318,7 @@ def _create_access_rule_serialize(
@validate_call
def get_access_rule(
self,
- access_rule_id: Annotated[StrictStr, Field(description="The access rule ID (group ID) of the access rule.")],
+ access_rule_id: Annotated[UUID, Field(description="The access rule ID (group ID) of the access rule.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -336,7 +337,7 @@ def get_access_rule(
Returns a list of access rule config given the group_id of the access rule.
:param access_rule_id: The access rule ID (group ID) of the access rule. (required)
- :type access_rule_id: str
+ :type access_rule_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -384,7 +385,7 @@ def get_access_rule(
@validate_call
def get_access_rule_with_http_info(
self,
- access_rule_id: Annotated[StrictStr, Field(description="The access rule ID (group ID) of the access rule.")],
+ access_rule_id: Annotated[UUID, Field(description="The access rule ID (group ID) of the access rule.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -403,7 +404,7 @@ def get_access_rule_with_http_info(
Returns a list of access rule config given the group_id of the access rule.
:param access_rule_id: The access rule ID (group ID) of the access rule. (required)
- :type access_rule_id: str
+ :type access_rule_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -451,7 +452,7 @@ def get_access_rule_with_http_info(
@validate_call
def get_access_rule_without_preload_content(
self,
- access_rule_id: Annotated[StrictStr, Field(description="The access rule ID (group ID) of the access rule.")],
+ access_rule_id: Annotated[UUID, Field(description="The access rule ID (group ID) of the access rule.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -470,7 +471,7 @@ def get_access_rule_without_preload_content(
Returns a list of access rule config given the group_id of the access rule.
:param access_rule_id: The access rule ID (group ID) of the access rule. (required)
- :type access_rule_id: str
+ :type access_rule_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -578,7 +579,7 @@ def _get_access_rule_serialize(
@validate_call
def update_access_rule(
self,
- access_rule_id: Annotated[StrictStr, Field(description="The access rule ID (group ID) of the access rule.")],
+ access_rule_id: Annotated[UUID, Field(description="The access rule ID (group ID) of the access rule.")],
update_access_rule_info: UpdateAccessRuleInfo,
_request_timeout: Union[
None,
@@ -598,7 +599,7 @@ def update_access_rule(
Updates the access rule config for the given group_id.
:param access_rule_id: The access rule ID (group ID) of the access rule. (required)
- :type access_rule_id: str
+ :type access_rule_id: UUID
:param update_access_rule_info: (required)
:type update_access_rule_info: UpdateAccessRuleInfo
:param _request_timeout: timeout setting for this request. If one
@@ -649,7 +650,7 @@ def update_access_rule(
@validate_call
def update_access_rule_with_http_info(
self,
- access_rule_id: Annotated[StrictStr, Field(description="The access rule ID (group ID) of the access rule.")],
+ access_rule_id: Annotated[UUID, Field(description="The access rule ID (group ID) of the access rule.")],
update_access_rule_info: UpdateAccessRuleInfo,
_request_timeout: Union[
None,
@@ -669,7 +670,7 @@ def update_access_rule_with_http_info(
Updates the access rule config for the given group_id.
:param access_rule_id: The access rule ID (group ID) of the access rule. (required)
- :type access_rule_id: str
+ :type access_rule_id: UUID
:param update_access_rule_info: (required)
:type update_access_rule_info: UpdateAccessRuleInfo
:param _request_timeout: timeout setting for this request. If one
@@ -720,7 +721,7 @@ def update_access_rule_with_http_info(
@validate_call
def update_access_rule_without_preload_content(
self,
- access_rule_id: Annotated[StrictStr, Field(description="The access rule ID (group ID) of the access rule.")],
+ access_rule_id: Annotated[UUID, Field(description="The access rule ID (group ID) of the access rule.")],
update_access_rule_info: UpdateAccessRuleInfo,
_request_timeout: Union[
None,
@@ -740,7 +741,7 @@ def update_access_rule_without_preload_content(
Updates the access rule config for the given group_id.
:param access_rule_id: The access rule ID (group ID) of the access rule. (required)
- :type access_rule_id: str
+ :type access_rule_id: UUID
:param update_access_rule_info: (required)
:type update_access_rule_info: UpdateAccessRuleInfo
:param _request_timeout: timeout setting for this request. If one
diff --git a/opal_security/api/apps_api.py b/opal_security/api/apps_api.py
index 988e042..7455a86 100644
--- a/opal_security/api/apps_api.py
+++ b/opal_security/api/apps_api.py
@@ -17,9 +17,10 @@
from typing import Any, Dict, List, Optional, Tuple, Union
from typing_extensions import Annotated
-from pydantic import Field, StrictStr
+from pydantic import Field
from typing import List, Optional
from typing_extensions import Annotated
+from uuid import UUID
from opal_security.models.app import App
from opal_security.models.app_type_enum import AppTypeEnum
from opal_security.models.apps_list import AppsList
@@ -46,7 +47,7 @@ def __init__(self, api_client=None) -> None:
@validate_call
def get_app(
self,
- app_id: Annotated[StrictStr, Field(description="The ID of the app.")],
+ app_id: Annotated[UUID, Field(description="The ID of the app.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -65,7 +66,7 @@ def get_app(
Returns an `App` object.
:param app_id: The ID of the app. (required)
- :type app_id: str
+ :type app_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -113,7 +114,7 @@ def get_app(
@validate_call
def get_app_with_http_info(
self,
- app_id: Annotated[StrictStr, Field(description="The ID of the app.")],
+ app_id: Annotated[UUID, Field(description="The ID of the app.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -132,7 +133,7 @@ def get_app_with_http_info(
Returns an `App` object.
:param app_id: The ID of the app. (required)
- :type app_id: str
+ :type app_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -180,7 +181,7 @@ def get_app_with_http_info(
@validate_call
def get_app_without_preload_content(
self,
- app_id: Annotated[StrictStr, Field(description="The ID of the app.")],
+ app_id: Annotated[UUID, Field(description="The ID of the app.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -199,7 +200,7 @@ def get_app_without_preload_content(
Returns an `App` object.
:param app_id: The ID of the app. (required)
- :type app_id: str
+ :type app_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -308,7 +309,7 @@ def _get_app_serialize(
def get_apps(
self,
app_type_filter: Annotated[Optional[List[AppTypeEnum]], Field(description="A list of app types to filter by.")] = None,
- owner_filter: Annotated[Optional[StrictStr], Field(description="An owner ID to filter by.")] = None,
+ owner_filter: Annotated[Optional[UUID], Field(description="An owner ID to filter by.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -329,7 +330,7 @@ def get_apps(
:param app_type_filter: A list of app types to filter by.
:type app_type_filter: List[AppTypeEnum]
:param owner_filter: An owner ID to filter by.
- :type owner_filter: str
+ :type owner_filter: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -379,7 +380,7 @@ def get_apps(
def get_apps_with_http_info(
self,
app_type_filter: Annotated[Optional[List[AppTypeEnum]], Field(description="A list of app types to filter by.")] = None,
- owner_filter: Annotated[Optional[StrictStr], Field(description="An owner ID to filter by.")] = None,
+ owner_filter: Annotated[Optional[UUID], Field(description="An owner ID to filter by.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -400,7 +401,7 @@ def get_apps_with_http_info(
:param app_type_filter: A list of app types to filter by.
:type app_type_filter: List[AppTypeEnum]
:param owner_filter: An owner ID to filter by.
- :type owner_filter: str
+ :type owner_filter: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -450,7 +451,7 @@ def get_apps_with_http_info(
def get_apps_without_preload_content(
self,
app_type_filter: Annotated[Optional[List[AppTypeEnum]], Field(description="A list of app types to filter by.")] = None,
- owner_filter: Annotated[Optional[StrictStr], Field(description="An owner ID to filter by.")] = None,
+ owner_filter: Annotated[Optional[UUID], Field(description="An owner ID to filter by.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -471,7 +472,7 @@ def get_apps_without_preload_content(
:param app_type_filter: A list of app types to filter by.
:type app_type_filter: List[AppTypeEnum]
:param owner_filter: An owner ID to filter by.
- :type owner_filter: str
+ :type owner_filter: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -588,9 +589,9 @@ def _get_apps_serialize(
@validate_call
def get_sync_errors(
self,
- app_id: Annotated[Optional[StrictStr], Field(description="The ID of the app to list sync errors for.")] = None,
- resource_id: Annotated[Optional[StrictStr], Field(description="The ID of the resource to list sync errors for.")] = None,
- group_id: Annotated[Optional[StrictStr], Field(description="The ID of the group to list sync errors for.")] = None,
+ app_id: Annotated[Optional[UUID], Field(description="The ID of the app to list sync errors for.")] = None,
+ resource_id: Annotated[Optional[UUID], Field(description="The ID of the resource to list sync errors for.")] = None,
+ group_id: Annotated[Optional[UUID], Field(description="The ID of the group to list sync errors for.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -609,11 +610,11 @@ def get_sync_errors(
Returns a list of recent sync errors that have occurred since the last successful sync.
:param app_id: The ID of the app to list sync errors for.
- :type app_id: str
+ :type app_id: UUID
:param resource_id: The ID of the resource to list sync errors for.
- :type resource_id: str
+ :type resource_id: UUID
:param group_id: The ID of the group to list sync errors for.
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -663,9 +664,9 @@ def get_sync_errors(
@validate_call
def get_sync_errors_with_http_info(
self,
- app_id: Annotated[Optional[StrictStr], Field(description="The ID of the app to list sync errors for.")] = None,
- resource_id: Annotated[Optional[StrictStr], Field(description="The ID of the resource to list sync errors for.")] = None,
- group_id: Annotated[Optional[StrictStr], Field(description="The ID of the group to list sync errors for.")] = None,
+ app_id: Annotated[Optional[UUID], Field(description="The ID of the app to list sync errors for.")] = None,
+ resource_id: Annotated[Optional[UUID], Field(description="The ID of the resource to list sync errors for.")] = None,
+ group_id: Annotated[Optional[UUID], Field(description="The ID of the group to list sync errors for.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -684,11 +685,11 @@ def get_sync_errors_with_http_info(
Returns a list of recent sync errors that have occurred since the last successful sync.
:param app_id: The ID of the app to list sync errors for.
- :type app_id: str
+ :type app_id: UUID
:param resource_id: The ID of the resource to list sync errors for.
- :type resource_id: str
+ :type resource_id: UUID
:param group_id: The ID of the group to list sync errors for.
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -738,9 +739,9 @@ def get_sync_errors_with_http_info(
@validate_call
def get_sync_errors_without_preload_content(
self,
- app_id: Annotated[Optional[StrictStr], Field(description="The ID of the app to list sync errors for.")] = None,
- resource_id: Annotated[Optional[StrictStr], Field(description="The ID of the resource to list sync errors for.")] = None,
- group_id: Annotated[Optional[StrictStr], Field(description="The ID of the group to list sync errors for.")] = None,
+ app_id: Annotated[Optional[UUID], Field(description="The ID of the app to list sync errors for.")] = None,
+ resource_id: Annotated[Optional[UUID], Field(description="The ID of the resource to list sync errors for.")] = None,
+ group_id: Annotated[Optional[UUID], Field(description="The ID of the group to list sync errors for.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -759,11 +760,11 @@ def get_sync_errors_without_preload_content(
Returns a list of recent sync errors that have occurred since the last successful sync.
:param app_id: The ID of the app to list sync errors for.
- :type app_id: str
+ :type app_id: UUID
:param resource_id: The ID of the resource to list sync errors for.
- :type resource_id: str
+ :type resource_id: UUID
:param group_id: The ID of the group to list sync errors for.
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
diff --git a/opal_security/api/bundles_api.py b/opal_security/api/bundles_api.py
index 23236c5..3325ed6 100644
--- a/opal_security/api/bundles_api.py
+++ b/opal_security/api/bundles_api.py
@@ -20,6 +20,7 @@
from pydantic import Field, StrictInt, StrictStr
from typing import Optional
from typing_extensions import Annotated
+from uuid import UUID
from opal_security.models.add_bundle_group_request import AddBundleGroupRequest
from opal_security.models.add_bundle_resource_request import AddBundleResourceRequest
from opal_security.models.bundle import Bundle
@@ -52,7 +53,7 @@ def __init__(self, api_client=None) -> None:
@validate_call
def add_bundle_group(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle.")],
add_bundle_group_request: AddBundleGroupRequest,
_request_timeout: Union[
None,
@@ -72,7 +73,7 @@ def add_bundle_group(
Adds a group to a bundle.
:param bundle_id: The ID of the bundle. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param add_bundle_group_request: (required)
:type add_bundle_group_request: AddBundleGroupRequest
:param _request_timeout: timeout setting for this request. If one
@@ -123,7 +124,7 @@ def add_bundle_group(
@validate_call
def add_bundle_group_with_http_info(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle.")],
add_bundle_group_request: AddBundleGroupRequest,
_request_timeout: Union[
None,
@@ -143,7 +144,7 @@ def add_bundle_group_with_http_info(
Adds a group to a bundle.
:param bundle_id: The ID of the bundle. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param add_bundle_group_request: (required)
:type add_bundle_group_request: AddBundleGroupRequest
:param _request_timeout: timeout setting for this request. If one
@@ -194,7 +195,7 @@ def add_bundle_group_with_http_info(
@validate_call
def add_bundle_group_without_preload_content(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle.")],
add_bundle_group_request: AddBundleGroupRequest,
_request_timeout: Union[
None,
@@ -214,7 +215,7 @@ def add_bundle_group_without_preload_content(
Adds a group to a bundle.
:param bundle_id: The ID of the bundle. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param add_bundle_group_request: (required)
:type add_bundle_group_request: AddBundleGroupRequest
:param _request_timeout: timeout setting for this request. If one
@@ -341,7 +342,7 @@ def _add_bundle_group_serialize(
@validate_call
def add_bundle_resource(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle.")],
add_bundle_resource_request: Optional[AddBundleResourceRequest] = None,
_request_timeout: Union[
None,
@@ -361,7 +362,7 @@ def add_bundle_resource(
Adds a resource to a bundle.
:param bundle_id: The ID of the bundle. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param add_bundle_resource_request:
:type add_bundle_resource_request: AddBundleResourceRequest
:param _request_timeout: timeout setting for this request. If one
@@ -412,7 +413,7 @@ def add_bundle_resource(
@validate_call
def add_bundle_resource_with_http_info(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle.")],
add_bundle_resource_request: Optional[AddBundleResourceRequest] = None,
_request_timeout: Union[
None,
@@ -432,7 +433,7 @@ def add_bundle_resource_with_http_info(
Adds a resource to a bundle.
:param bundle_id: The ID of the bundle. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param add_bundle_resource_request:
:type add_bundle_resource_request: AddBundleResourceRequest
:param _request_timeout: timeout setting for this request. If one
@@ -483,7 +484,7 @@ def add_bundle_resource_with_http_info(
@validate_call
def add_bundle_resource_without_preload_content(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle.")],
add_bundle_resource_request: Optional[AddBundleResourceRequest] = None,
_request_timeout: Union[
None,
@@ -503,7 +504,7 @@ def add_bundle_resource_without_preload_content(
Adds a resource to a bundle.
:param bundle_id: The ID of the bundle. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param add_bundle_resource_request:
:type add_bundle_resource_request: AddBundleResourceRequest
:param _request_timeout: timeout setting for this request. If one
@@ -904,7 +905,7 @@ def _create_bundle_serialize(
@validate_call
def delete_bundle(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -923,7 +924,7 @@ def delete_bundle(
Deletes a bundle.
:param bundle_id: The ID of the bundle. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -971,7 +972,7 @@ def delete_bundle(
@validate_call
def delete_bundle_with_http_info(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -990,7 +991,7 @@ def delete_bundle_with_http_info(
Deletes a bundle.
:param bundle_id: The ID of the bundle. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1038,7 +1039,7 @@ def delete_bundle_with_http_info(
@validate_call
def delete_bundle_without_preload_content(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1057,7 +1058,7 @@ def delete_bundle_without_preload_content(
Deletes a bundle.
:param bundle_id: The ID of the bundle. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1158,7 +1159,7 @@ def _delete_bundle_serialize(
@validate_call
def get_bundle(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1177,7 +1178,7 @@ def get_bundle(
Returns a `Bundle` object.
:param bundle_id: The ID of the bundle. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1225,7 +1226,7 @@ def get_bundle(
@validate_call
def get_bundle_with_http_info(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1244,7 +1245,7 @@ def get_bundle_with_http_info(
Returns a `Bundle` object.
:param bundle_id: The ID of the bundle. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1292,7 +1293,7 @@ def get_bundle_with_http_info(
@validate_call
def get_bundle_without_preload_content(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1311,7 +1312,7 @@ def get_bundle_without_preload_content(
Returns a `Bundle` object.
:param bundle_id: The ID of the bundle. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1419,7 +1420,7 @@ def _get_bundle_serialize(
@validate_call
def get_bundle_groups(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle.")],
page_size: Annotated[Optional[StrictInt], Field(description="The maximum number of groups to return from the beginning of the list. Default is 200, max is 1000.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="A cursor indicating where to start fetching items after a specific point.")] = None,
_request_timeout: Union[
@@ -1440,7 +1441,7 @@ def get_bundle_groups(
Returns a list of `Group` objects in a given bundle.
:param bundle_id: The ID of the bundle. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param page_size: The maximum number of groups to return from the beginning of the list. Default is 200, max is 1000.
:type page_size: int
:param cursor: A cursor indicating where to start fetching items after a specific point.
@@ -1494,7 +1495,7 @@ def get_bundle_groups(
@validate_call
def get_bundle_groups_with_http_info(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle.")],
page_size: Annotated[Optional[StrictInt], Field(description="The maximum number of groups to return from the beginning of the list. Default is 200, max is 1000.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="A cursor indicating where to start fetching items after a specific point.")] = None,
_request_timeout: Union[
@@ -1515,7 +1516,7 @@ def get_bundle_groups_with_http_info(
Returns a list of `Group` objects in a given bundle.
:param bundle_id: The ID of the bundle. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param page_size: The maximum number of groups to return from the beginning of the list. Default is 200, max is 1000.
:type page_size: int
:param cursor: A cursor indicating where to start fetching items after a specific point.
@@ -1569,7 +1570,7 @@ def get_bundle_groups_with_http_info(
@validate_call
def get_bundle_groups_without_preload_content(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle.")],
page_size: Annotated[Optional[StrictInt], Field(description="The maximum number of groups to return from the beginning of the list. Default is 200, max is 1000.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="A cursor indicating where to start fetching items after a specific point.")] = None,
_request_timeout: Union[
@@ -1590,7 +1591,7 @@ def get_bundle_groups_without_preload_content(
Returns a list of `Group` objects in a given bundle.
:param bundle_id: The ID of the bundle. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param page_size: The maximum number of groups to return from the beginning of the list. Default is 200, max is 1000.
:type page_size: int
:param cursor: A cursor indicating where to start fetching items after a specific point.
@@ -1714,7 +1715,7 @@ def _get_bundle_groups_serialize(
@validate_call
def get_bundle_resources(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle.")],
page_size: Annotated[Optional[StrictInt], Field(description="The maximum number of resources to return from the beginning of the list. Default is 200, max is 1000.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="A cursor indicating where to start fetching items after a specific point.")] = None,
_request_timeout: Union[
@@ -1735,7 +1736,7 @@ def get_bundle_resources(
Returns a list of `Resource` objects in a given bundle.
:param bundle_id: The ID of the bundle. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param page_size: The maximum number of resources to return from the beginning of the list. Default is 200, max is 1000.
:type page_size: int
:param cursor: A cursor indicating where to start fetching items after a specific point.
@@ -1789,7 +1790,7 @@ def get_bundle_resources(
@validate_call
def get_bundle_resources_with_http_info(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle.")],
page_size: Annotated[Optional[StrictInt], Field(description="The maximum number of resources to return from the beginning of the list. Default is 200, max is 1000.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="A cursor indicating where to start fetching items after a specific point.")] = None,
_request_timeout: Union[
@@ -1810,7 +1811,7 @@ def get_bundle_resources_with_http_info(
Returns a list of `Resource` objects in a given bundle.
:param bundle_id: The ID of the bundle. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param page_size: The maximum number of resources to return from the beginning of the list. Default is 200, max is 1000.
:type page_size: int
:param cursor: A cursor indicating where to start fetching items after a specific point.
@@ -1864,7 +1865,7 @@ def get_bundle_resources_with_http_info(
@validate_call
def get_bundle_resources_without_preload_content(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle.")],
page_size: Annotated[Optional[StrictInt], Field(description="The maximum number of resources to return from the beginning of the list. Default is 200, max is 1000.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="A cursor indicating where to start fetching items after a specific point.")] = None,
_request_timeout: Union[
@@ -1885,7 +1886,7 @@ def get_bundle_resources_without_preload_content(
Returns a list of `Resource` objects in a given bundle.
:param bundle_id: The ID of the bundle. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param page_size: The maximum number of resources to return from the beginning of the list. Default is 200, max is 1000.
:type page_size: int
:param cursor: A cursor indicating where to start fetching items after a specific point.
@@ -2009,7 +2010,7 @@ def _get_bundle_resources_serialize(
@validate_call
def get_bundle_visibility(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2028,7 +2029,7 @@ def get_bundle_visibility(
Gets the visibility of the bundle.
:param bundle_id: The ID of the bundle. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2076,7 +2077,7 @@ def get_bundle_visibility(
@validate_call
def get_bundle_visibility_with_http_info(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2095,7 +2096,7 @@ def get_bundle_visibility_with_http_info(
Gets the visibility of the bundle.
:param bundle_id: The ID of the bundle. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2143,7 +2144,7 @@ def get_bundle_visibility_with_http_info(
@validate_call
def get_bundle_visibility_without_preload_content(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2162,7 +2163,7 @@ def get_bundle_visibility_without_preload_content(
Gets the visibility of the bundle.
:param bundle_id: The ID of the bundle. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2567,8 +2568,8 @@ def _get_bundles_serialize(
@validate_call
def remove_bundle_group(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle.")],
- group_id: Annotated[StrictStr, Field(description="The ID of the group to remove.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group to remove.")],
access_level_remote_id: Annotated[Optional[StrictStr], Field(description="The remote ID of the access level to remove.")] = None,
_request_timeout: Union[
None,
@@ -2588,9 +2589,9 @@ def remove_bundle_group(
Removes a group from a bundle.
:param bundle_id: The ID of the bundle. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param group_id: The ID of the group to remove. (required)
- :type group_id: str
+ :type group_id: UUID
:param access_level_remote_id: The remote ID of the access level to remove.
:type access_level_remote_id: str
:param _request_timeout: timeout setting for this request. If one
@@ -2642,8 +2643,8 @@ def remove_bundle_group(
@validate_call
def remove_bundle_group_with_http_info(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle.")],
- group_id: Annotated[StrictStr, Field(description="The ID of the group to remove.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group to remove.")],
access_level_remote_id: Annotated[Optional[StrictStr], Field(description="The remote ID of the access level to remove.")] = None,
_request_timeout: Union[
None,
@@ -2663,9 +2664,9 @@ def remove_bundle_group_with_http_info(
Removes a group from a bundle.
:param bundle_id: The ID of the bundle. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param group_id: The ID of the group to remove. (required)
- :type group_id: str
+ :type group_id: UUID
:param access_level_remote_id: The remote ID of the access level to remove.
:type access_level_remote_id: str
:param _request_timeout: timeout setting for this request. If one
@@ -2717,8 +2718,8 @@ def remove_bundle_group_with_http_info(
@validate_call
def remove_bundle_group_without_preload_content(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle.")],
- group_id: Annotated[StrictStr, Field(description="The ID of the group to remove.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group to remove.")],
access_level_remote_id: Annotated[Optional[StrictStr], Field(description="The remote ID of the access level to remove.")] = None,
_request_timeout: Union[
None,
@@ -2738,9 +2739,9 @@ def remove_bundle_group_without_preload_content(
Removes a group from a bundle.
:param bundle_id: The ID of the bundle. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param group_id: The ID of the group to remove. (required)
- :type group_id: str
+ :type group_id: UUID
:param access_level_remote_id: The remote ID of the access level to remove.
:type access_level_remote_id: str
:param _request_timeout: timeout setting for this request. If one
@@ -2853,8 +2854,8 @@ def _remove_bundle_group_serialize(
@validate_call
def remove_bundle_resource(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle.")],
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource to remove.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource to remove.")],
access_level_remote_id: Annotated[Optional[StrictStr], Field(description="The remote ID of the access level to grant. If omitted, the default access level remote ID value (empty string) is used.")] = None,
_request_timeout: Union[
None,
@@ -2874,9 +2875,9 @@ def remove_bundle_resource(
Removes a resource from a bundle.
:param bundle_id: The ID of the bundle. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param resource_id: The ID of the resource to remove. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param access_level_remote_id: The remote ID of the access level to grant. If omitted, the default access level remote ID value (empty string) is used.
:type access_level_remote_id: str
:param _request_timeout: timeout setting for this request. If one
@@ -2928,8 +2929,8 @@ def remove_bundle_resource(
@validate_call
def remove_bundle_resource_with_http_info(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle.")],
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource to remove.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource to remove.")],
access_level_remote_id: Annotated[Optional[StrictStr], Field(description="The remote ID of the access level to grant. If omitted, the default access level remote ID value (empty string) is used.")] = None,
_request_timeout: Union[
None,
@@ -2949,9 +2950,9 @@ def remove_bundle_resource_with_http_info(
Removes a resource from a bundle.
:param bundle_id: The ID of the bundle. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param resource_id: The ID of the resource to remove. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param access_level_remote_id: The remote ID of the access level to grant. If omitted, the default access level remote ID value (empty string) is used.
:type access_level_remote_id: str
:param _request_timeout: timeout setting for this request. If one
@@ -3003,8 +3004,8 @@ def remove_bundle_resource_with_http_info(
@validate_call
def remove_bundle_resource_without_preload_content(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle.")],
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource to remove.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource to remove.")],
access_level_remote_id: Annotated[Optional[StrictStr], Field(description="The remote ID of the access level to grant. If omitted, the default access level remote ID value (empty string) is used.")] = None,
_request_timeout: Union[
None,
@@ -3024,9 +3025,9 @@ def remove_bundle_resource_without_preload_content(
Removes a resource from a bundle.
:param bundle_id: The ID of the bundle. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param resource_id: The ID of the resource to remove. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param access_level_remote_id: The remote ID of the access level to grant. If omitted, the default access level remote ID value (empty string) is used.
:type access_level_remote_id: str
:param _request_timeout: timeout setting for this request. If one
@@ -3139,7 +3140,7 @@ def _remove_bundle_resource_serialize(
@validate_call
def set_bundle_visibility(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle.")],
visibility_info: VisibilityInfo,
_request_timeout: Union[
None,
@@ -3159,7 +3160,7 @@ def set_bundle_visibility(
Sets the visibility of the bundle.
:param bundle_id: The ID of the bundle. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param visibility_info: (required)
:type visibility_info: VisibilityInfo
:param _request_timeout: timeout setting for this request. If one
@@ -3210,7 +3211,7 @@ def set_bundle_visibility(
@validate_call
def set_bundle_visibility_with_http_info(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle.")],
visibility_info: VisibilityInfo,
_request_timeout: Union[
None,
@@ -3230,7 +3231,7 @@ def set_bundle_visibility_with_http_info(
Sets the visibility of the bundle.
:param bundle_id: The ID of the bundle. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param visibility_info: (required)
:type visibility_info: VisibilityInfo
:param _request_timeout: timeout setting for this request. If one
@@ -3281,7 +3282,7 @@ def set_bundle_visibility_with_http_info(
@validate_call
def set_bundle_visibility_without_preload_content(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle.")],
visibility_info: VisibilityInfo,
_request_timeout: Union[
None,
@@ -3301,7 +3302,7 @@ def set_bundle_visibility_without_preload_content(
Sets the visibility of the bundle.
:param bundle_id: The ID of the bundle. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param visibility_info: (required)
:type visibility_info: VisibilityInfo
:param _request_timeout: timeout setting for this request. If one
@@ -3421,7 +3422,7 @@ def _set_bundle_visibility_serialize(
@validate_call
def update_bundle(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle to be updated.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle to be updated.")],
bundle: Bundle,
_request_timeout: Union[
None,
@@ -3441,7 +3442,7 @@ def update_bundle(
Updates a bundle.
:param bundle_id: The ID of the bundle to be updated. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param bundle: (required)
:type bundle: Bundle
:param _request_timeout: timeout setting for this request. If one
@@ -3493,7 +3494,7 @@ def update_bundle(
@validate_call
def update_bundle_with_http_info(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle to be updated.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle to be updated.")],
bundle: Bundle,
_request_timeout: Union[
None,
@@ -3513,7 +3514,7 @@ def update_bundle_with_http_info(
Updates a bundle.
:param bundle_id: The ID of the bundle to be updated. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param bundle: (required)
:type bundle: Bundle
:param _request_timeout: timeout setting for this request. If one
@@ -3565,7 +3566,7 @@ def update_bundle_with_http_info(
@validate_call
def update_bundle_without_preload_content(
self,
- bundle_id: Annotated[StrictStr, Field(description="The ID of the bundle to be updated.")],
+ bundle_id: Annotated[UUID, Field(description="The ID of the bundle to be updated.")],
bundle: Bundle,
_request_timeout: Union[
None,
@@ -3585,7 +3586,7 @@ def update_bundle_without_preload_content(
Updates a bundle.
:param bundle_id: The ID of the bundle to be updated. (required)
- :type bundle_id: str
+ :type bundle_id: UUID
:param bundle: (required)
:type bundle: Bundle
:param _request_timeout: timeout setting for this request. If one
diff --git a/opal_security/api/configuration_templates_api.py b/opal_security/api/configuration_templates_api.py
index 74c774c..5571b77 100644
--- a/opal_security/api/configuration_templates_api.py
+++ b/opal_security/api/configuration_templates_api.py
@@ -17,8 +17,9 @@
from typing import Any, Dict, List, Optional, Tuple, Union
from typing_extensions import Annotated
-from pydantic import Field, StrictStr
+from pydantic import Field
from typing_extensions import Annotated
+from uuid import UUID
from opal_security.models.configuration_template import ConfigurationTemplate
from opal_security.models.create_configuration_template_info import CreateConfigurationTemplateInfo
from opal_security.models.paginated_configuration_template_list import PaginatedConfigurationTemplateList
@@ -319,7 +320,7 @@ def _create_configuration_template_serialize(
@validate_call
def delete_configuration_template(
self,
- configuration_template_id: Annotated[StrictStr, Field(description="The ID of the configuration template.")],
+ configuration_template_id: Annotated[UUID, Field(description="The ID of the configuration template.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -338,7 +339,7 @@ def delete_configuration_template(
Deletes a configuration template.
:param configuration_template_id: The ID of the configuration template. (required)
- :type configuration_template_id: str
+ :type configuration_template_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -386,7 +387,7 @@ def delete_configuration_template(
@validate_call
def delete_configuration_template_with_http_info(
self,
- configuration_template_id: Annotated[StrictStr, Field(description="The ID of the configuration template.")],
+ configuration_template_id: Annotated[UUID, Field(description="The ID of the configuration template.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -405,7 +406,7 @@ def delete_configuration_template_with_http_info(
Deletes a configuration template.
:param configuration_template_id: The ID of the configuration template. (required)
- :type configuration_template_id: str
+ :type configuration_template_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -453,7 +454,7 @@ def delete_configuration_template_with_http_info(
@validate_call
def delete_configuration_template_without_preload_content(
self,
- configuration_template_id: Annotated[StrictStr, Field(description="The ID of the configuration template.")],
+ configuration_template_id: Annotated[UUID, Field(description="The ID of the configuration template.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -472,7 +473,7 @@ def delete_configuration_template_without_preload_content(
Deletes a configuration template.
:param configuration_template_id: The ID of the configuration template. (required)
- :type configuration_template_id: str
+ :type configuration_template_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
diff --git a/opal_security/api/delegations_api.py b/opal_security/api/delegations_api.py
index a2e7ba4..8f8f790 100644
--- a/opal_security/api/delegations_api.py
+++ b/opal_security/api/delegations_api.py
@@ -20,6 +20,7 @@
from pydantic import Field, StrictStr
from typing import Optional
from typing_extensions import Annotated
+from uuid import UUID
from opal_security.models.create_delegation_request import CreateDelegationRequest
from opal_security.models.delegation import Delegation
from opal_security.models.paginated_delegations_list import PaginatedDelegationsList
@@ -319,7 +320,7 @@ def _create_delegation_serialize(
@validate_call
def delete_delegation(
self,
- delegation_id: Annotated[StrictStr, Field(description="The ID of the delegation to remove.")],
+ delegation_id: Annotated[UUID, Field(description="The ID of the delegation to remove.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -338,7 +339,7 @@ def delete_delegation(
Deletes a delegation by its ID.
:param delegation_id: The ID of the delegation to remove. (required)
- :type delegation_id: str
+ :type delegation_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -386,7 +387,7 @@ def delete_delegation(
@validate_call
def delete_delegation_with_http_info(
self,
- delegation_id: Annotated[StrictStr, Field(description="The ID of the delegation to remove.")],
+ delegation_id: Annotated[UUID, Field(description="The ID of the delegation to remove.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -405,7 +406,7 @@ def delete_delegation_with_http_info(
Deletes a delegation by its ID.
:param delegation_id: The ID of the delegation to remove. (required)
- :type delegation_id: str
+ :type delegation_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -453,7 +454,7 @@ def delete_delegation_with_http_info(
@validate_call
def delete_delegation_without_preload_content(
self,
- delegation_id: Annotated[StrictStr, Field(description="The ID of the delegation to remove.")],
+ delegation_id: Annotated[UUID, Field(description="The ID of the delegation to remove.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -472,7 +473,7 @@ def delete_delegation_without_preload_content(
Deletes a delegation by its ID.
:param delegation_id: The ID of the delegation to remove. (required)
- :type delegation_id: str
+ :type delegation_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -573,7 +574,7 @@ def _delete_delegation_serialize(
@validate_call
def get_delegation(
self,
- delegation_id: Annotated[StrictStr, Field(description="The ID of the delegation to retrieve.")],
+ delegation_id: Annotated[UUID, Field(description="The ID of the delegation to retrieve.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -592,7 +593,7 @@ def get_delegation(
Returns a specific delegation by its ID.
:param delegation_id: The ID of the delegation to retrieve. (required)
- :type delegation_id: str
+ :type delegation_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -640,7 +641,7 @@ def get_delegation(
@validate_call
def get_delegation_with_http_info(
self,
- delegation_id: Annotated[StrictStr, Field(description="The ID of the delegation to retrieve.")],
+ delegation_id: Annotated[UUID, Field(description="The ID of the delegation to retrieve.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -659,7 +660,7 @@ def get_delegation_with_http_info(
Returns a specific delegation by its ID.
:param delegation_id: The ID of the delegation to retrieve. (required)
- :type delegation_id: str
+ :type delegation_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -707,7 +708,7 @@ def get_delegation_with_http_info(
@validate_call
def get_delegation_without_preload_content(
self,
- delegation_id: Annotated[StrictStr, Field(description="The ID of the delegation to retrieve.")],
+ delegation_id: Annotated[UUID, Field(description="The ID of the delegation to retrieve.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -726,7 +727,7 @@ def get_delegation_without_preload_content(
Returns a specific delegation by its ID.
:param delegation_id: The ID of the delegation to retrieve. (required)
- :type delegation_id: str
+ :type delegation_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -834,8 +835,8 @@ def _get_delegation_serialize(
@validate_call
def get_delegations(
self,
- delegator_user_id: Annotated[Optional[StrictStr], Field(description="The delegator user ID to filter delegations by the user delegating their access review requests.")] = None,
- delegate_user_id: Annotated[Optional[StrictStr], Field(description="The delegate user ID to filter delegations by the user being delegated to.")] = None,
+ delegator_user_id: Annotated[Optional[UUID], Field(description="The delegator user ID to filter delegations by the user delegating their access review requests.")] = None,
+ delegate_user_id: Annotated[Optional[UUID], Field(description="The delegate user ID to filter delegations by the user being delegated to.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="A cursor to indicate where to start fetching results.")] = None,
page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True)]], Field(description="The maximum number of results to return per page. The default is 200.")] = None,
_request_timeout: Union[
@@ -856,9 +857,9 @@ def get_delegations(
Returns a list of request reviewer delegations configured for your organization.
:param delegator_user_id: The delegator user ID to filter delegations by the user delegating their access review requests.
- :type delegator_user_id: str
+ :type delegator_user_id: UUID
:param delegate_user_id: The delegate user ID to filter delegations by the user being delegated to.
- :type delegate_user_id: str
+ :type delegate_user_id: UUID
:param cursor: A cursor to indicate where to start fetching results.
:type cursor: str
:param page_size: The maximum number of results to return per page. The default is 200.
@@ -913,8 +914,8 @@ def get_delegations(
@validate_call
def get_delegations_with_http_info(
self,
- delegator_user_id: Annotated[Optional[StrictStr], Field(description="The delegator user ID to filter delegations by the user delegating their access review requests.")] = None,
- delegate_user_id: Annotated[Optional[StrictStr], Field(description="The delegate user ID to filter delegations by the user being delegated to.")] = None,
+ delegator_user_id: Annotated[Optional[UUID], Field(description="The delegator user ID to filter delegations by the user delegating their access review requests.")] = None,
+ delegate_user_id: Annotated[Optional[UUID], Field(description="The delegate user ID to filter delegations by the user being delegated to.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="A cursor to indicate where to start fetching results.")] = None,
page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True)]], Field(description="The maximum number of results to return per page. The default is 200.")] = None,
_request_timeout: Union[
@@ -935,9 +936,9 @@ def get_delegations_with_http_info(
Returns a list of request reviewer delegations configured for your organization.
:param delegator_user_id: The delegator user ID to filter delegations by the user delegating their access review requests.
- :type delegator_user_id: str
+ :type delegator_user_id: UUID
:param delegate_user_id: The delegate user ID to filter delegations by the user being delegated to.
- :type delegate_user_id: str
+ :type delegate_user_id: UUID
:param cursor: A cursor to indicate where to start fetching results.
:type cursor: str
:param page_size: The maximum number of results to return per page. The default is 200.
@@ -992,8 +993,8 @@ def get_delegations_with_http_info(
@validate_call
def get_delegations_without_preload_content(
self,
- delegator_user_id: Annotated[Optional[StrictStr], Field(description="The delegator user ID to filter delegations by the user delegating their access review requests.")] = None,
- delegate_user_id: Annotated[Optional[StrictStr], Field(description="The delegate user ID to filter delegations by the user being delegated to.")] = None,
+ delegator_user_id: Annotated[Optional[UUID], Field(description="The delegator user ID to filter delegations by the user delegating their access review requests.")] = None,
+ delegate_user_id: Annotated[Optional[UUID], Field(description="The delegate user ID to filter delegations by the user being delegated to.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="A cursor to indicate where to start fetching results.")] = None,
page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True)]], Field(description="The maximum number of results to return per page. The default is 200.")] = None,
_request_timeout: Union[
@@ -1014,9 +1015,9 @@ def get_delegations_without_preload_content(
Returns a list of request reviewer delegations configured for your organization.
:param delegator_user_id: The delegator user ID to filter delegations by the user delegating their access review requests.
- :type delegator_user_id: str
+ :type delegator_user_id: UUID
:param delegate_user_id: The delegate user ID to filter delegations by the user being delegated to.
- :type delegate_user_id: str
+ :type delegate_user_id: UUID
:param cursor: A cursor to indicate where to start fetching results.
:type cursor: str
:param page_size: The maximum number of results to return per page. The default is 200.
diff --git a/opal_security/api/events_api.py b/opal_security/api/events_api.py
index 6c56a0b..1e514db 100644
--- a/opal_security/api/events_api.py
+++ b/opal_security/api/events_api.py
@@ -20,6 +20,7 @@
from pydantic import Field, StrictStr
from typing import Optional
from typing_extensions import Annotated
+from uuid import UUID
from opal_security.models.paginated_event_list import PaginatedEventList
from opal_security.api_client import ApiClient, RequestSerialized
@@ -45,8 +46,8 @@ def events(
self,
start_date_filter: Annotated[Optional[StrictStr], Field(description="A start date filter for the events.")] = None,
end_date_filter: Annotated[Optional[StrictStr], Field(description="An end date filter for the events.")] = None,
- actor_filter: Annotated[Optional[StrictStr], Field(description="An actor filter for the events. Supply the ID of the actor.")] = None,
- object_filter: Annotated[Optional[StrictStr], Field(description="An object filter for the events. Supply the ID of the object.")] = None,
+ actor_filter: Annotated[Optional[UUID], Field(description="An actor filter for the events. Supply the ID of the actor.")] = None,
+ object_filter: Annotated[Optional[UUID], Field(description="An object filter for the events. Supply the ID of the object.")] = None,
event_type_filter: Annotated[Optional[StrictStr], Field(description="An event type filter for the events.")] = None,
api_token_filter: Annotated[Optional[StrictStr], Field(description="An API filter for the events. Supply the name and preview of the API token.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="The pagination cursor value.")] = None,
@@ -73,9 +74,9 @@ def events(
:param end_date_filter: An end date filter for the events.
:type end_date_filter: str
:param actor_filter: An actor filter for the events. Supply the ID of the actor.
- :type actor_filter: str
+ :type actor_filter: UUID
:param object_filter: An object filter for the events. Supply the ID of the object.
- :type object_filter: str
+ :type object_filter: UUID
:param event_type_filter: An event type filter for the events.
:type event_type_filter: str
:param api_token_filter: An API filter for the events. Supply the name and preview of the API token.
@@ -140,8 +141,8 @@ def events_with_http_info(
self,
start_date_filter: Annotated[Optional[StrictStr], Field(description="A start date filter for the events.")] = None,
end_date_filter: Annotated[Optional[StrictStr], Field(description="An end date filter for the events.")] = None,
- actor_filter: Annotated[Optional[StrictStr], Field(description="An actor filter for the events. Supply the ID of the actor.")] = None,
- object_filter: Annotated[Optional[StrictStr], Field(description="An object filter for the events. Supply the ID of the object.")] = None,
+ actor_filter: Annotated[Optional[UUID], Field(description="An actor filter for the events. Supply the ID of the actor.")] = None,
+ object_filter: Annotated[Optional[UUID], Field(description="An object filter for the events. Supply the ID of the object.")] = None,
event_type_filter: Annotated[Optional[StrictStr], Field(description="An event type filter for the events.")] = None,
api_token_filter: Annotated[Optional[StrictStr], Field(description="An API filter for the events. Supply the name and preview of the API token.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="The pagination cursor value.")] = None,
@@ -168,9 +169,9 @@ def events_with_http_info(
:param end_date_filter: An end date filter for the events.
:type end_date_filter: str
:param actor_filter: An actor filter for the events. Supply the ID of the actor.
- :type actor_filter: str
+ :type actor_filter: UUID
:param object_filter: An object filter for the events. Supply the ID of the object.
- :type object_filter: str
+ :type object_filter: UUID
:param event_type_filter: An event type filter for the events.
:type event_type_filter: str
:param api_token_filter: An API filter for the events. Supply the name and preview of the API token.
@@ -235,8 +236,8 @@ def events_without_preload_content(
self,
start_date_filter: Annotated[Optional[StrictStr], Field(description="A start date filter for the events.")] = None,
end_date_filter: Annotated[Optional[StrictStr], Field(description="An end date filter for the events.")] = None,
- actor_filter: Annotated[Optional[StrictStr], Field(description="An actor filter for the events. Supply the ID of the actor.")] = None,
- object_filter: Annotated[Optional[StrictStr], Field(description="An object filter for the events. Supply the ID of the object.")] = None,
+ actor_filter: Annotated[Optional[UUID], Field(description="An actor filter for the events. Supply the ID of the actor.")] = None,
+ object_filter: Annotated[Optional[UUID], Field(description="An object filter for the events. Supply the ID of the object.")] = None,
event_type_filter: Annotated[Optional[StrictStr], Field(description="An event type filter for the events.")] = None,
api_token_filter: Annotated[Optional[StrictStr], Field(description="An API filter for the events. Supply the name and preview of the API token.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="The pagination cursor value.")] = None,
@@ -263,9 +264,9 @@ def events_without_preload_content(
:param end_date_filter: An end date filter for the events.
:type end_date_filter: str
:param actor_filter: An actor filter for the events. Supply the ID of the actor.
- :type actor_filter: str
+ :type actor_filter: UUID
:param object_filter: An object filter for the events. Supply the ID of the object.
- :type object_filter: str
+ :type object_filter: UUID
:param event_type_filter: An event type filter for the events.
:type event_type_filter: str
:param api_token_filter: An API filter for the events. Supply the name and preview of the API token.
diff --git a/opal_security/api/group_bindings_api.py b/opal_security/api/group_bindings_api.py
index e24f53b..f3f25d3 100644
--- a/opal_security/api/group_bindings_api.py
+++ b/opal_security/api/group_bindings_api.py
@@ -20,6 +20,7 @@
from pydantic import Field, StrictStr
from typing import Optional
from typing_extensions import Annotated
+from uuid import UUID
from opal_security.models.create_group_binding_info import CreateGroupBindingInfo
from opal_security.models.group_binding import GroupBinding
from opal_security.models.paginated_group_bindings_list import PaginatedGroupBindingsList
@@ -320,7 +321,7 @@ def _create_group_binding_serialize(
@validate_call
def delete_group_binding(
self,
- group_binding_id: Annotated[StrictStr, Field(description="The ID of the group binding.")],
+ group_binding_id: Annotated[UUID, Field(description="The ID of the group binding.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -339,7 +340,7 @@ def delete_group_binding(
Deletes a group binding.
:param group_binding_id: The ID of the group binding. (required)
- :type group_binding_id: str
+ :type group_binding_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -387,7 +388,7 @@ def delete_group_binding(
@validate_call
def delete_group_binding_with_http_info(
self,
- group_binding_id: Annotated[StrictStr, Field(description="The ID of the group binding.")],
+ group_binding_id: Annotated[UUID, Field(description="The ID of the group binding.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -406,7 +407,7 @@ def delete_group_binding_with_http_info(
Deletes a group binding.
:param group_binding_id: The ID of the group binding. (required)
- :type group_binding_id: str
+ :type group_binding_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -454,7 +455,7 @@ def delete_group_binding_with_http_info(
@validate_call
def delete_group_binding_without_preload_content(
self,
- group_binding_id: Annotated[StrictStr, Field(description="The ID of the group binding.")],
+ group_binding_id: Annotated[UUID, Field(description="The ID of the group binding.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -473,7 +474,7 @@ def delete_group_binding_without_preload_content(
Deletes a group binding.
:param group_binding_id: The ID of the group binding. (required)
- :type group_binding_id: str
+ :type group_binding_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -574,7 +575,7 @@ def _delete_group_binding_serialize(
@validate_call
def get_group_binding(
self,
- group_binding_id: Annotated[StrictStr, Field(description="The ID of the group binding.")],
+ group_binding_id: Annotated[UUID, Field(description="The ID of the group binding.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -593,7 +594,7 @@ def get_group_binding(
Returns a `GroupBinding` object.
:param group_binding_id: The ID of the group binding. (required)
- :type group_binding_id: str
+ :type group_binding_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -641,7 +642,7 @@ def get_group_binding(
@validate_call
def get_group_binding_with_http_info(
self,
- group_binding_id: Annotated[StrictStr, Field(description="The ID of the group binding.")],
+ group_binding_id: Annotated[UUID, Field(description="The ID of the group binding.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -660,7 +661,7 @@ def get_group_binding_with_http_info(
Returns a `GroupBinding` object.
:param group_binding_id: The ID of the group binding. (required)
- :type group_binding_id: str
+ :type group_binding_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -708,7 +709,7 @@ def get_group_binding_with_http_info(
@validate_call
def get_group_binding_without_preload_content(
self,
- group_binding_id: Annotated[StrictStr, Field(description="The ID of the group binding.")],
+ group_binding_id: Annotated[UUID, Field(description="The ID of the group binding.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -727,7 +728,7 @@ def get_group_binding_without_preload_content(
Returns a `GroupBinding` object.
:param group_binding_id: The ID of the group binding. (required)
- :type group_binding_id: str
+ :type group_binding_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
diff --git a/opal_security/api/groups_api.py b/opal_security/api/groups_api.py
index 4d2bed5..b180fb4 100644
--- a/opal_security/api/groups_api.py
+++ b/opal_security/api/groups_api.py
@@ -20,6 +20,7 @@
from pydantic import Field, StrictStr
from typing import List, Optional
from typing_extensions import Annotated
+from uuid import UUID
from opal_security.models.add_group_resource_request import AddGroupResourceRequest
from opal_security.models.add_group_user_request import AddGroupUserRequest
from opal_security.models.create_group_info import CreateGroupInfo
@@ -66,7 +67,7 @@ def __init__(self, api_client=None) -> None:
@validate_call
def add_group_containing_group(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
group_containing_group: GroupContainingGroup,
_request_timeout: Union[
None,
@@ -86,7 +87,7 @@ def add_group_containing_group(
Creates a new containing group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param group_containing_group: (required)
:type group_containing_group: GroupContainingGroup
:param _request_timeout: timeout setting for this request. If one
@@ -137,7 +138,7 @@ def add_group_containing_group(
@validate_call
def add_group_containing_group_with_http_info(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
group_containing_group: GroupContainingGroup,
_request_timeout: Union[
None,
@@ -157,7 +158,7 @@ def add_group_containing_group_with_http_info(
Creates a new containing group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param group_containing_group: (required)
:type group_containing_group: GroupContainingGroup
:param _request_timeout: timeout setting for this request. If one
@@ -208,7 +209,7 @@ def add_group_containing_group_with_http_info(
@validate_call
def add_group_containing_group_without_preload_content(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
group_containing_group: GroupContainingGroup,
_request_timeout: Union[
None,
@@ -228,7 +229,7 @@ def add_group_containing_group_without_preload_content(
Creates a new containing group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param group_containing_group: (required)
:type group_containing_group: GroupContainingGroup
:param _request_timeout: timeout setting for this request. If one
@@ -355,8 +356,8 @@ def _add_group_containing_group_serialize(
@validate_call
def add_group_resource(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
access_level_remote_id: Annotated[Optional[StrictStr], Field(description="The remote ID of the access level to grant to this user. If omitted, the default access level remote ID value (empty string) is used.")] = None,
add_group_resource_request: Optional[AddGroupResourceRequest] = None,
_request_timeout: Union[
@@ -377,9 +378,9 @@ def add_group_resource(
Adds a resource to a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param access_level_remote_id: The remote ID of the access level to grant to this user. If omitted, the default access level remote ID value (empty string) is used.
:type access_level_remote_id: str
:param add_group_resource_request:
@@ -434,8 +435,8 @@ def add_group_resource(
@validate_call
def add_group_resource_with_http_info(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
access_level_remote_id: Annotated[Optional[StrictStr], Field(description="The remote ID of the access level to grant to this user. If omitted, the default access level remote ID value (empty string) is used.")] = None,
add_group_resource_request: Optional[AddGroupResourceRequest] = None,
_request_timeout: Union[
@@ -456,9 +457,9 @@ def add_group_resource_with_http_info(
Adds a resource to a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param access_level_remote_id: The remote ID of the access level to grant to this user. If omitted, the default access level remote ID value (empty string) is used.
:type access_level_remote_id: str
:param add_group_resource_request:
@@ -513,8 +514,8 @@ def add_group_resource_with_http_info(
@validate_call
def add_group_resource_without_preload_content(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
access_level_remote_id: Annotated[Optional[StrictStr], Field(description="The remote ID of the access level to grant to this user. If omitted, the default access level remote ID value (empty string) is used.")] = None,
add_group_resource_request: Optional[AddGroupResourceRequest] = None,
_request_timeout: Union[
@@ -535,9 +536,9 @@ def add_group_resource_without_preload_content(
Adds a resource to a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param access_level_remote_id: The remote ID of the access level to grant to this user. If omitted, the default access level remote ID value (empty string) is used.
:type access_level_remote_id: str
:param add_group_resource_request:
@@ -676,8 +677,8 @@ def _add_group_resource_serialize(
@validate_call
def add_group_user(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
- user_id: Annotated[StrictStr, Field(description="The ID of the user to add.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user to add.")],
duration_minutes: Annotated[Optional[Annotated[int, Field(le=525960, strict=True)]], Field(description="The duration for which the group can be accessed (in minutes). Use 0 to set to indefinite.")] = None,
access_level_remote_id: Annotated[Optional[StrictStr], Field(description="The remote ID of the access level to grant to this user. If omitted, the default access level remote ID value (empty string) is used.")] = None,
add_group_user_request: Optional[AddGroupUserRequest] = None,
@@ -699,9 +700,9 @@ def add_group_user(
Adds a user to this group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param user_id: The ID of the user to add. (required)
- :type user_id: str
+ :type user_id: UUID
:param duration_minutes: The duration for which the group can be accessed (in minutes). Use 0 to set to indefinite.
:type duration_minutes: int
:param access_level_remote_id: The remote ID of the access level to grant to this user. If omitted, the default access level remote ID value (empty string) is used.
@@ -759,8 +760,8 @@ def add_group_user(
@validate_call
def add_group_user_with_http_info(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
- user_id: Annotated[StrictStr, Field(description="The ID of the user to add.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user to add.")],
duration_minutes: Annotated[Optional[Annotated[int, Field(le=525960, strict=True)]], Field(description="The duration for which the group can be accessed (in minutes). Use 0 to set to indefinite.")] = None,
access_level_remote_id: Annotated[Optional[StrictStr], Field(description="The remote ID of the access level to grant to this user. If omitted, the default access level remote ID value (empty string) is used.")] = None,
add_group_user_request: Optional[AddGroupUserRequest] = None,
@@ -782,9 +783,9 @@ def add_group_user_with_http_info(
Adds a user to this group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param user_id: The ID of the user to add. (required)
- :type user_id: str
+ :type user_id: UUID
:param duration_minutes: The duration for which the group can be accessed (in minutes). Use 0 to set to indefinite.
:type duration_minutes: int
:param access_level_remote_id: The remote ID of the access level to grant to this user. If omitted, the default access level remote ID value (empty string) is used.
@@ -842,8 +843,8 @@ def add_group_user_with_http_info(
@validate_call
def add_group_user_without_preload_content(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
- user_id: Annotated[StrictStr, Field(description="The ID of the user to add.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user to add.")],
duration_minutes: Annotated[Optional[Annotated[int, Field(le=525960, strict=True)]], Field(description="The duration for which the group can be accessed (in minutes). Use 0 to set to indefinite.")] = None,
access_level_remote_id: Annotated[Optional[StrictStr], Field(description="The remote ID of the access level to grant to this user. If omitted, the default access level remote ID value (empty string) is used.")] = None,
add_group_user_request: Optional[AddGroupUserRequest] = None,
@@ -865,9 +866,9 @@ def add_group_user_without_preload_content(
Adds a user to this group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param user_id: The ID of the user to add. (required)
- :type user_id: str
+ :type user_id: UUID
:param duration_minutes: The duration for which the group can be accessed (in minutes). Use 0 to set to indefinite.
:type duration_minutes: int
:param access_level_remote_id: The remote ID of the access level to grant to this user. If omitted, the default access level remote ID value (empty string) is used.
@@ -1288,7 +1289,7 @@ def _create_group_serialize(
@validate_call
def delete_group(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1307,7 +1308,7 @@ def delete_group(
Deletes a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1355,7 +1356,7 @@ def delete_group(
@validate_call
def delete_group_with_http_info(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1374,7 +1375,7 @@ def delete_group_with_http_info(
Deletes a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1422,7 +1423,7 @@ def delete_group_with_http_info(
@validate_call
def delete_group_without_preload_content(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1441,7 +1442,7 @@ def delete_group_without_preload_content(
Deletes a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1542,8 +1543,8 @@ def _delete_group_serialize(
@validate_call
def delete_group_user(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
- user_id: Annotated[StrictStr, Field(description="The ID of a user to remove from this group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
+ user_id: Annotated[UUID, Field(description="The ID of a user to remove from this group.")],
access_level_remote_id: Annotated[Optional[StrictStr], Field(description="The remote ID of the access level for which this user has direct access. If omitted, the default access level remote ID value (empty string) is assumed.")] = None,
_request_timeout: Union[
None,
@@ -1563,9 +1564,9 @@ def delete_group_user(
Removes a user's access from this group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param user_id: The ID of a user to remove from this group. (required)
- :type user_id: str
+ :type user_id: UUID
:param access_level_remote_id: The remote ID of the access level for which this user has direct access. If omitted, the default access level remote ID value (empty string) is assumed.
:type access_level_remote_id: str
:param _request_timeout: timeout setting for this request. If one
@@ -1617,8 +1618,8 @@ def delete_group_user(
@validate_call
def delete_group_user_with_http_info(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
- user_id: Annotated[StrictStr, Field(description="The ID of a user to remove from this group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
+ user_id: Annotated[UUID, Field(description="The ID of a user to remove from this group.")],
access_level_remote_id: Annotated[Optional[StrictStr], Field(description="The remote ID of the access level for which this user has direct access. If omitted, the default access level remote ID value (empty string) is assumed.")] = None,
_request_timeout: Union[
None,
@@ -1638,9 +1639,9 @@ def delete_group_user_with_http_info(
Removes a user's access from this group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param user_id: The ID of a user to remove from this group. (required)
- :type user_id: str
+ :type user_id: UUID
:param access_level_remote_id: The remote ID of the access level for which this user has direct access. If omitted, the default access level remote ID value (empty string) is assumed.
:type access_level_remote_id: str
:param _request_timeout: timeout setting for this request. If one
@@ -1692,8 +1693,8 @@ def delete_group_user_with_http_info(
@validate_call
def delete_group_user_without_preload_content(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
- user_id: Annotated[StrictStr, Field(description="The ID of a user to remove from this group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
+ user_id: Annotated[UUID, Field(description="The ID of a user to remove from this group.")],
access_level_remote_id: Annotated[Optional[StrictStr], Field(description="The remote ID of the access level for which this user has direct access. If omitted, the default access level remote ID value (empty string) is assumed.")] = None,
_request_timeout: Union[
None,
@@ -1713,9 +1714,9 @@ def delete_group_user_without_preload_content(
Removes a user's access from this group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param user_id: The ID of a user to remove from this group. (required)
- :type user_id: str
+ :type user_id: UUID
:param access_level_remote_id: The remote ID of the access level for which this user has direct access. If omitted, the default access level remote ID value (empty string) is assumed.
:type access_level_remote_id: str
:param _request_timeout: timeout setting for this request. If one
@@ -1828,7 +1829,7 @@ def _delete_group_user_serialize(
@validate_call
def get_group(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1847,7 +1848,7 @@ def get_group(
Returns a `Group` object.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1895,7 +1896,7 @@ def get_group(
@validate_call
def get_group_with_http_info(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1914,7 +1915,7 @@ def get_group_with_http_info(
Returns a `Group` object.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1962,7 +1963,7 @@ def get_group_with_http_info(
@validate_call
def get_group_without_preload_content(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1981,7 +1982,7 @@ def get_group_without_preload_content(
Returns a `Group` object.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2089,8 +2090,8 @@ def _get_group_serialize(
@validate_call
def get_group_containing_group(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
- containing_group_id: Annotated[StrictStr, Field(description="The ID of the containing group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
+ containing_group_id: Annotated[UUID, Field(description="The ID of the containing group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2109,9 +2110,9 @@ def get_group_containing_group(
Gets a specific containing group for a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param containing_group_id: The ID of the containing group. (required)
- :type containing_group_id: str
+ :type containing_group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2160,8 +2161,8 @@ def get_group_containing_group(
@validate_call
def get_group_containing_group_with_http_info(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
- containing_group_id: Annotated[StrictStr, Field(description="The ID of the containing group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
+ containing_group_id: Annotated[UUID, Field(description="The ID of the containing group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2180,9 +2181,9 @@ def get_group_containing_group_with_http_info(
Gets a specific containing group for a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param containing_group_id: The ID of the containing group. (required)
- :type containing_group_id: str
+ :type containing_group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2231,8 +2232,8 @@ def get_group_containing_group_with_http_info(
@validate_call
def get_group_containing_group_without_preload_content(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
- containing_group_id: Annotated[StrictStr, Field(description="The ID of the containing group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
+ containing_group_id: Annotated[UUID, Field(description="The ID of the containing group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2251,9 +2252,9 @@ def get_group_containing_group_without_preload_content(
Gets a specific containing group for a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param containing_group_id: The ID of the containing group. (required)
- :type containing_group_id: str
+ :type containing_group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2365,7 +2366,7 @@ def _get_group_containing_group_serialize(
@validate_call
def get_group_containing_groups(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2384,7 +2385,7 @@ def get_group_containing_groups(
Gets the list of groups that the group gives access to.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2432,7 +2433,7 @@ def get_group_containing_groups(
@validate_call
def get_group_containing_groups_with_http_info(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2451,7 +2452,7 @@ def get_group_containing_groups_with_http_info(
Gets the list of groups that the group gives access to.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2499,7 +2500,7 @@ def get_group_containing_groups_with_http_info(
@validate_call
def get_group_containing_groups_without_preload_content(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2518,7 +2519,7 @@ def get_group_containing_groups_without_preload_content(
Gets the list of groups that the group gives access to.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2626,7 +2627,7 @@ def _get_group_containing_groups_serialize(
@validate_call
def get_group_message_channels(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2645,7 +2646,7 @@ def get_group_message_channels(
Gets the list of audit and reviewer message channels attached to a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2693,7 +2694,7 @@ def get_group_message_channels(
@validate_call
def get_group_message_channels_with_http_info(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2712,7 +2713,7 @@ def get_group_message_channels_with_http_info(
Gets the list of audit and reviewer message channels attached to a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2760,7 +2761,7 @@ def get_group_message_channels_with_http_info(
@validate_call
def get_group_message_channels_without_preload_content(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2779,7 +2780,7 @@ def get_group_message_channels_without_preload_content(
Gets the list of audit and reviewer message channels attached to a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2887,7 +2888,7 @@ def _get_group_message_channels_serialize(
@validate_call
def get_group_on_call_schedules(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2906,7 +2907,7 @@ def get_group_on_call_schedules(
Gets the list of on call schedules attached to a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2954,7 +2955,7 @@ def get_group_on_call_schedules(
@validate_call
def get_group_on_call_schedules_with_http_info(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2973,7 +2974,7 @@ def get_group_on_call_schedules_with_http_info(
Gets the list of on call schedules attached to a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -3021,7 +3022,7 @@ def get_group_on_call_schedules_with_http_info(
@validate_call
def get_group_on_call_schedules_without_preload_content(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -3040,7 +3041,7 @@ def get_group_on_call_schedules_without_preload_content(
Gets the list of on call schedules attached to a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -3148,7 +3149,7 @@ def _get_group_on_call_schedules_serialize(
@validate_call
def get_group_resources(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -3167,7 +3168,7 @@ def get_group_resources(
Gets the list of resources that the group gives access to.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -3215,7 +3216,7 @@ def get_group_resources(
@validate_call
def get_group_resources_with_http_info(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -3234,7 +3235,7 @@ def get_group_resources_with_http_info(
Gets the list of resources that the group gives access to.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -3282,7 +3283,7 @@ def get_group_resources_with_http_info(
@validate_call
def get_group_resources_without_preload_content(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -3301,7 +3302,7 @@ def get_group_resources_without_preload_content(
Gets the list of resources that the group gives access to.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -3409,7 +3410,7 @@ def _get_group_resources_serialize(
@validate_call
def get_group_reviewer_stages(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -3428,7 +3429,7 @@ def get_group_reviewer_stages(
Gets the list of reviewer stages for a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -3477,7 +3478,7 @@ def get_group_reviewer_stages(
@validate_call
def get_group_reviewer_stages_with_http_info(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -3496,7 +3497,7 @@ def get_group_reviewer_stages_with_http_info(
Gets the list of reviewer stages for a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -3545,7 +3546,7 @@ def get_group_reviewer_stages_with_http_info(
@validate_call
def get_group_reviewer_stages_without_preload_content(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -3564,7 +3565,7 @@ def get_group_reviewer_stages_without_preload_content(
Gets the list of reviewer stages for a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -3673,7 +3674,7 @@ def _get_group_reviewer_stages_serialize(
@validate_call
def get_group_reviewers(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -3686,13 +3687,13 @@ def get_group_reviewers(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> List[str]:
+ ) -> List[UUID]:
"""(Deprecated) get_group_reviewers
Gets the list of owner IDs of the reviewers for a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -3725,7 +3726,7 @@ def get_group_reviewers(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "List[str]",
+ '200': "List[UUID]",
}
response_data = self.api_client.call_api(
*_param,
@@ -3741,7 +3742,7 @@ def get_group_reviewers(
@validate_call
def get_group_reviewers_with_http_info(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -3754,13 +3755,13 @@ def get_group_reviewers_with_http_info(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> ApiResponse[List[str]]:
+ ) -> ApiResponse[List[UUID]]:
"""(Deprecated) get_group_reviewers
Gets the list of owner IDs of the reviewers for a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -3793,7 +3794,7 @@ def get_group_reviewers_with_http_info(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "List[str]",
+ '200': "List[UUID]",
}
response_data = self.api_client.call_api(
*_param,
@@ -3809,7 +3810,7 @@ def get_group_reviewers_with_http_info(
@validate_call
def get_group_reviewers_without_preload_content(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -3828,7 +3829,7 @@ def get_group_reviewers_without_preload_content(
Gets the list of owner IDs of the reviewers for a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -3861,7 +3862,7 @@ def get_group_reviewers_without_preload_content(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "List[str]",
+ '200': "List[UUID]",
}
response_data = self.api_client.call_api(
*_param,
@@ -3937,7 +3938,7 @@ def _get_group_reviewers_serialize(
@validate_call
def get_group_tags(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group whose tags to return.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group whose tags to return.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -3956,7 +3957,7 @@ def get_group_tags(
Returns all tags applied to the group.
:param group_id: The ID of the group whose tags to return. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -4004,7 +4005,7 @@ def get_group_tags(
@validate_call
def get_group_tags_with_http_info(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group whose tags to return.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group whose tags to return.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -4023,7 +4024,7 @@ def get_group_tags_with_http_info(
Returns all tags applied to the group.
:param group_id: The ID of the group whose tags to return. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -4071,7 +4072,7 @@ def get_group_tags_with_http_info(
@validate_call
def get_group_tags_without_preload_content(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group whose tags to return.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group whose tags to return.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -4090,7 +4091,7 @@ def get_group_tags_without_preload_content(
Returns all tags applied to the group.
:param group_id: The ID of the group whose tags to return. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -4198,7 +4199,7 @@ def _get_group_tags_serialize(
@validate_call
def get_group_users(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
cursor: Annotated[Optional[StrictStr], Field(description="The pagination cursor value.")] = None,
page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True)]], Field(description="Number of results to return per page. Default is 200.")] = None,
_request_timeout: Union[
@@ -4219,7 +4220,7 @@ def get_group_users(
Gets the list of users for this group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param cursor: The pagination cursor value.
:type cursor: str
:param page_size: Number of results to return per page. Default is 200.
@@ -4273,7 +4274,7 @@ def get_group_users(
@validate_call
def get_group_users_with_http_info(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
cursor: Annotated[Optional[StrictStr], Field(description="The pagination cursor value.")] = None,
page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True)]], Field(description="Number of results to return per page. Default is 200.")] = None,
_request_timeout: Union[
@@ -4294,7 +4295,7 @@ def get_group_users_with_http_info(
Gets the list of users for this group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param cursor: The pagination cursor value.
:type cursor: str
:param page_size: Number of results to return per page. Default is 200.
@@ -4348,7 +4349,7 @@ def get_group_users_with_http_info(
@validate_call
def get_group_users_without_preload_content(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
cursor: Annotated[Optional[StrictStr], Field(description="The pagination cursor value.")] = None,
page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True)]], Field(description="Number of results to return per page. Default is 200.")] = None,
_request_timeout: Union[
@@ -4369,7 +4370,7 @@ def get_group_users_without_preload_content(
Gets the list of users for this group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param cursor: The pagination cursor value.
:type cursor: str
:param page_size: Number of results to return per page. Default is 200.
@@ -4493,7 +4494,7 @@ def _get_group_users_serialize(
@validate_call
def get_group_visibility(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -4512,7 +4513,7 @@ def get_group_visibility(
Gets the visibility of this group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -4560,7 +4561,7 @@ def get_group_visibility(
@validate_call
def get_group_visibility_with_http_info(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -4579,7 +4580,7 @@ def get_group_visibility_with_http_info(
Gets the visibility of this group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -4627,7 +4628,7 @@ def get_group_visibility_with_http_info(
@validate_call
def get_group_visibility_without_preload_content(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -4646,7 +4647,7 @@ def get_group_visibility_without_preload_content(
Gets the visibility of this group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -4757,7 +4758,7 @@ def get_groups(
cursor: Annotated[Optional[StrictStr], Field(description="The pagination cursor value.")] = None,
page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True)]], Field(description="Number of results to return per page. Default is 200.")] = None,
group_type_filter: Annotated[Optional[GroupTypeEnum], Field(description="The group type to filter by.")] = None,
- group_ids: Annotated[Optional[List[StrictStr]], Field(description="The group ids to filter by.")] = None,
+ group_ids: Annotated[Optional[List[UUID]], Field(description="The group ids to filter by.")] = None,
group_name: Annotated[Optional[StrictStr], Field(description="Group name.")] = None,
_request_timeout: Union[
None,
@@ -4783,7 +4784,7 @@ def get_groups(
:param group_type_filter: The group type to filter by.
:type group_type_filter: GroupTypeEnum
:param group_ids: The group ids to filter by.
- :type group_ids: List[str]
+ :type group_ids: List[UUID]
:param group_name: Group name.
:type group_name: str
:param _request_timeout: timeout setting for this request. If one
@@ -4840,7 +4841,7 @@ def get_groups_with_http_info(
cursor: Annotated[Optional[StrictStr], Field(description="The pagination cursor value.")] = None,
page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True)]], Field(description="Number of results to return per page. Default is 200.")] = None,
group_type_filter: Annotated[Optional[GroupTypeEnum], Field(description="The group type to filter by.")] = None,
- group_ids: Annotated[Optional[List[StrictStr]], Field(description="The group ids to filter by.")] = None,
+ group_ids: Annotated[Optional[List[UUID]], Field(description="The group ids to filter by.")] = None,
group_name: Annotated[Optional[StrictStr], Field(description="Group name.")] = None,
_request_timeout: Union[
None,
@@ -4866,7 +4867,7 @@ def get_groups_with_http_info(
:param group_type_filter: The group type to filter by.
:type group_type_filter: GroupTypeEnum
:param group_ids: The group ids to filter by.
- :type group_ids: List[str]
+ :type group_ids: List[UUID]
:param group_name: Group name.
:type group_name: str
:param _request_timeout: timeout setting for this request. If one
@@ -4923,7 +4924,7 @@ def get_groups_without_preload_content(
cursor: Annotated[Optional[StrictStr], Field(description="The pagination cursor value.")] = None,
page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True)]], Field(description="Number of results to return per page. Default is 200.")] = None,
group_type_filter: Annotated[Optional[GroupTypeEnum], Field(description="The group type to filter by.")] = None,
- group_ids: Annotated[Optional[List[StrictStr]], Field(description="The group ids to filter by.")] = None,
+ group_ids: Annotated[Optional[List[UUID]], Field(description="The group ids to filter by.")] = None,
group_name: Annotated[Optional[StrictStr], Field(description="Group name.")] = None,
_request_timeout: Union[
None,
@@ -4949,7 +4950,7 @@ def get_groups_without_preload_content(
:param group_type_filter: The group type to filter by.
:type group_type_filter: GroupTypeEnum
:param group_ids: The group ids to filter by.
- :type group_ids: List[str]
+ :type group_ids: List[UUID]
:param group_name: Group name.
:type group_name: str
:param _request_timeout: timeout setting for this request. If one
@@ -5086,7 +5087,7 @@ def _get_groups_serialize(
@validate_call
def get_user_groups(
self,
- user_id: Annotated[StrictStr, Field(description="The ID of the user whose groups to return.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user whose groups to return.")],
cursor: Annotated[Optional[StrictStr], Field(description="The pagination cursor value.")] = None,
page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True)]], Field(description="Number of results to return per page. Default is 200.")] = None,
_request_timeout: Union[
@@ -5107,7 +5108,7 @@ def get_user_groups(
Returns all groups that the user is a member of.
:param user_id: The ID of the user whose groups to return. (required)
- :type user_id: str
+ :type user_id: UUID
:param cursor: The pagination cursor value.
:type cursor: str
:param page_size: Number of results to return per page. Default is 200.
@@ -5161,7 +5162,7 @@ def get_user_groups(
@validate_call
def get_user_groups_with_http_info(
self,
- user_id: Annotated[StrictStr, Field(description="The ID of the user whose groups to return.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user whose groups to return.")],
cursor: Annotated[Optional[StrictStr], Field(description="The pagination cursor value.")] = None,
page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True)]], Field(description="Number of results to return per page. Default is 200.")] = None,
_request_timeout: Union[
@@ -5182,7 +5183,7 @@ def get_user_groups_with_http_info(
Returns all groups that the user is a member of.
:param user_id: The ID of the user whose groups to return. (required)
- :type user_id: str
+ :type user_id: UUID
:param cursor: The pagination cursor value.
:type cursor: str
:param page_size: Number of results to return per page. Default is 200.
@@ -5236,7 +5237,7 @@ def get_user_groups_with_http_info(
@validate_call
def get_user_groups_without_preload_content(
self,
- user_id: Annotated[StrictStr, Field(description="The ID of the user whose groups to return.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user whose groups to return.")],
cursor: Annotated[Optional[StrictStr], Field(description="The pagination cursor value.")] = None,
page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True)]], Field(description="Number of results to return per page. Default is 200.")] = None,
_request_timeout: Union[
@@ -5257,7 +5258,7 @@ def get_user_groups_without_preload_content(
Returns all groups that the user is a member of.
:param user_id: The ID of the user whose groups to return. (required)
- :type user_id: str
+ :type user_id: UUID
:param cursor: The pagination cursor value.
:type cursor: str
:param page_size: Number of results to return per page. Default is 200.
@@ -5381,8 +5382,9 @@ def _get_user_groups_serialize(
@validate_call
def remove_group_containing_group(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
- containing_group_id: Annotated[StrictStr, Field(description="The ID of the containing group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the member group to remove.")],
+ containing_group_id: Annotated[UUID, Field(description="The ID of the containing group.")],
+ access_level_remote_id: Annotated[Optional[StrictStr], Field(description="The remote ID of the member group's access level to filter by.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -5400,10 +5402,12 @@ def remove_group_containing_group(
Removes a containing group from a group.
- :param group_id: The ID of the group. (required)
- :type group_id: str
+ :param group_id: The ID of the member group to remove. (required)
+ :type group_id: UUID
:param containing_group_id: The ID of the containing group. (required)
- :type containing_group_id: str
+ :type containing_group_id: UUID
+ :param access_level_remote_id: The remote ID of the member group's access level to filter by.
+ :type access_level_remote_id: str
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -5429,6 +5433,7 @@ def remove_group_containing_group(
_param = self._remove_group_containing_group_serialize(
group_id=group_id,
containing_group_id=containing_group_id,
+ access_level_remote_id=access_level_remote_id,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -5452,8 +5457,9 @@ def remove_group_containing_group(
@validate_call
def remove_group_containing_group_with_http_info(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
- containing_group_id: Annotated[StrictStr, Field(description="The ID of the containing group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the member group to remove.")],
+ containing_group_id: Annotated[UUID, Field(description="The ID of the containing group.")],
+ access_level_remote_id: Annotated[Optional[StrictStr], Field(description="The remote ID of the member group's access level to filter by.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -5471,10 +5477,12 @@ def remove_group_containing_group_with_http_info(
Removes a containing group from a group.
- :param group_id: The ID of the group. (required)
- :type group_id: str
+ :param group_id: The ID of the member group to remove. (required)
+ :type group_id: UUID
:param containing_group_id: The ID of the containing group. (required)
- :type containing_group_id: str
+ :type containing_group_id: UUID
+ :param access_level_remote_id: The remote ID of the member group's access level to filter by.
+ :type access_level_remote_id: str
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -5500,6 +5508,7 @@ def remove_group_containing_group_with_http_info(
_param = self._remove_group_containing_group_serialize(
group_id=group_id,
containing_group_id=containing_group_id,
+ access_level_remote_id=access_level_remote_id,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -5523,8 +5532,9 @@ def remove_group_containing_group_with_http_info(
@validate_call
def remove_group_containing_group_without_preload_content(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
- containing_group_id: Annotated[StrictStr, Field(description="The ID of the containing group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the member group to remove.")],
+ containing_group_id: Annotated[UUID, Field(description="The ID of the containing group.")],
+ access_level_remote_id: Annotated[Optional[StrictStr], Field(description="The remote ID of the member group's access level to filter by.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -5542,10 +5552,12 @@ def remove_group_containing_group_without_preload_content(
Removes a containing group from a group.
- :param group_id: The ID of the group. (required)
- :type group_id: str
+ :param group_id: The ID of the member group to remove. (required)
+ :type group_id: UUID
:param containing_group_id: The ID of the containing group. (required)
- :type containing_group_id: str
+ :type containing_group_id: UUID
+ :param access_level_remote_id: The remote ID of the member group's access level to filter by.
+ :type access_level_remote_id: str
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -5571,6 +5583,7 @@ def remove_group_containing_group_without_preload_content(
_param = self._remove_group_containing_group_serialize(
group_id=group_id,
containing_group_id=containing_group_id,
+ access_level_remote_id=access_level_remote_id,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -5591,6 +5604,7 @@ def _remove_group_containing_group_serialize(
self,
group_id,
containing_group_id,
+ access_level_remote_id,
_request_auth,
_content_type,
_headers,
@@ -5617,6 +5631,10 @@ def _remove_group_containing_group_serialize(
if containing_group_id is not None:
_path_params['containing_group_id'] = containing_group_id
# process the query parameters
+ if access_level_remote_id is not None:
+
+ _query_params.append(('access_level_remote_id', access_level_remote_id))
+
# process the header parameters
# process the form parameters
# process the body parameter
@@ -5650,7 +5668,7 @@ def _remove_group_containing_group_serialize(
@validate_call
def set_group_message_channels(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
message_channel_id_list: MessageChannelIDList,
_request_timeout: Union[
None,
@@ -5664,13 +5682,13 @@ def set_group_message_channels(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> List[str]:
+ ) -> List[UUID]:
"""set_group_message_channels
Sets the list of audit message channels attached to a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param message_channel_id_list: (required)
:type message_channel_id_list: MessageChannelIDList
:param _request_timeout: timeout setting for this request. If one
@@ -5705,7 +5723,7 @@ def set_group_message_channels(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "List[str]",
+ '200': "List[UUID]",
}
response_data = self.api_client.call_api(
*_param,
@@ -5721,7 +5739,7 @@ def set_group_message_channels(
@validate_call
def set_group_message_channels_with_http_info(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
message_channel_id_list: MessageChannelIDList,
_request_timeout: Union[
None,
@@ -5735,13 +5753,13 @@ def set_group_message_channels_with_http_info(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> ApiResponse[List[str]]:
+ ) -> ApiResponse[List[UUID]]:
"""set_group_message_channels
Sets the list of audit message channels attached to a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param message_channel_id_list: (required)
:type message_channel_id_list: MessageChannelIDList
:param _request_timeout: timeout setting for this request. If one
@@ -5776,7 +5794,7 @@ def set_group_message_channels_with_http_info(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "List[str]",
+ '200': "List[UUID]",
}
response_data = self.api_client.call_api(
*_param,
@@ -5792,7 +5810,7 @@ def set_group_message_channels_with_http_info(
@validate_call
def set_group_message_channels_without_preload_content(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
message_channel_id_list: MessageChannelIDList,
_request_timeout: Union[
None,
@@ -5812,7 +5830,7 @@ def set_group_message_channels_without_preload_content(
Sets the list of audit message channels attached to a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param message_channel_id_list: (required)
:type message_channel_id_list: MessageChannelIDList
:param _request_timeout: timeout setting for this request. If one
@@ -5847,7 +5865,7 @@ def set_group_message_channels_without_preload_content(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "List[str]",
+ '200': "List[UUID]",
}
response_data = self.api_client.call_api(
*_param,
@@ -5939,7 +5957,7 @@ def _set_group_message_channels_serialize(
@validate_call
def set_group_on_call_schedules(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
on_call_schedule_id_list: OnCallScheduleIDList,
_request_timeout: Union[
None,
@@ -5953,13 +5971,13 @@ def set_group_on_call_schedules(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> List[str]:
+ ) -> List[UUID]:
"""set_group_on_call_schedules
Sets the list of on call schedules attached to a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param on_call_schedule_id_list: (required)
:type on_call_schedule_id_list: OnCallScheduleIDList
:param _request_timeout: timeout setting for this request. If one
@@ -5994,7 +6012,7 @@ def set_group_on_call_schedules(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "List[str]",
+ '200': "List[UUID]",
}
response_data = self.api_client.call_api(
*_param,
@@ -6010,7 +6028,7 @@ def set_group_on_call_schedules(
@validate_call
def set_group_on_call_schedules_with_http_info(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
on_call_schedule_id_list: OnCallScheduleIDList,
_request_timeout: Union[
None,
@@ -6024,13 +6042,13 @@ def set_group_on_call_schedules_with_http_info(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> ApiResponse[List[str]]:
+ ) -> ApiResponse[List[UUID]]:
"""set_group_on_call_schedules
Sets the list of on call schedules attached to a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param on_call_schedule_id_list: (required)
:type on_call_schedule_id_list: OnCallScheduleIDList
:param _request_timeout: timeout setting for this request. If one
@@ -6065,7 +6083,7 @@ def set_group_on_call_schedules_with_http_info(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "List[str]",
+ '200': "List[UUID]",
}
response_data = self.api_client.call_api(
*_param,
@@ -6081,7 +6099,7 @@ def set_group_on_call_schedules_with_http_info(
@validate_call
def set_group_on_call_schedules_without_preload_content(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
on_call_schedule_id_list: OnCallScheduleIDList,
_request_timeout: Union[
None,
@@ -6101,7 +6119,7 @@ def set_group_on_call_schedules_without_preload_content(
Sets the list of on call schedules attached to a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param on_call_schedule_id_list: (required)
:type on_call_schedule_id_list: OnCallScheduleIDList
:param _request_timeout: timeout setting for this request. If one
@@ -6136,7 +6154,7 @@ def set_group_on_call_schedules_without_preload_content(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "List[str]",
+ '200': "List[UUID]",
}
response_data = self.api_client.call_api(
*_param,
@@ -6228,7 +6246,7 @@ def _set_group_on_call_schedules_serialize(
@validate_call
def set_group_resources(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
update_group_resources_info: UpdateGroupResourcesInfo,
_request_timeout: Union[
None,
@@ -6248,7 +6266,7 @@ def set_group_resources(
Sets the list of resources that the group gives access to.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param update_group_resources_info: (required)
:type update_group_resources_info: UpdateGroupResourcesInfo
:param _request_timeout: timeout setting for this request. If one
@@ -6299,7 +6317,7 @@ def set_group_resources(
@validate_call
def set_group_resources_with_http_info(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
update_group_resources_info: UpdateGroupResourcesInfo,
_request_timeout: Union[
None,
@@ -6319,7 +6337,7 @@ def set_group_resources_with_http_info(
Sets the list of resources that the group gives access to.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param update_group_resources_info: (required)
:type update_group_resources_info: UpdateGroupResourcesInfo
:param _request_timeout: timeout setting for this request. If one
@@ -6370,7 +6388,7 @@ def set_group_resources_with_http_info(
@validate_call
def set_group_resources_without_preload_content(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
update_group_resources_info: UpdateGroupResourcesInfo,
_request_timeout: Union[
None,
@@ -6390,7 +6408,7 @@ def set_group_resources_without_preload_content(
Sets the list of resources that the group gives access to.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param update_group_resources_info: (required)
:type update_group_resources_info: UpdateGroupResourcesInfo
:param _request_timeout: timeout setting for this request. If one
@@ -6510,7 +6528,7 @@ def _set_group_resources_serialize(
@validate_call
def set_group_reviewer_stages(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
reviewer_stage_list: ReviewerStageList,
_request_timeout: Union[
None,
@@ -6530,7 +6548,7 @@ def set_group_reviewer_stages(
Sets the list of reviewer stages for a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param reviewer_stage_list: (required)
:type reviewer_stage_list: ReviewerStageList
:param _request_timeout: timeout setting for this request. If one
@@ -6582,7 +6600,7 @@ def set_group_reviewer_stages(
@validate_call
def set_group_reviewer_stages_with_http_info(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
reviewer_stage_list: ReviewerStageList,
_request_timeout: Union[
None,
@@ -6602,7 +6620,7 @@ def set_group_reviewer_stages_with_http_info(
Sets the list of reviewer stages for a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param reviewer_stage_list: (required)
:type reviewer_stage_list: ReviewerStageList
:param _request_timeout: timeout setting for this request. If one
@@ -6654,7 +6672,7 @@ def set_group_reviewer_stages_with_http_info(
@validate_call
def set_group_reviewer_stages_without_preload_content(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
reviewer_stage_list: ReviewerStageList,
_request_timeout: Union[
None,
@@ -6674,7 +6692,7 @@ def set_group_reviewer_stages_without_preload_content(
Sets the list of reviewer stages for a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param reviewer_stage_list: (required)
:type reviewer_stage_list: ReviewerStageList
:param _request_timeout: timeout setting for this request. If one
@@ -6802,7 +6820,7 @@ def _set_group_reviewer_stages_serialize(
@validate_call
def set_group_reviewers(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
reviewer_id_list: ReviewerIDList,
_request_timeout: Union[
None,
@@ -6816,13 +6834,13 @@ def set_group_reviewers(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> List[str]:
+ ) -> List[UUID]:
"""(Deprecated) set_group_reviewers
Sets the list of reviewers for a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param reviewer_id_list: (required)
:type reviewer_id_list: ReviewerIDList
:param _request_timeout: timeout setting for this request. If one
@@ -6858,7 +6876,7 @@ def set_group_reviewers(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "List[str]",
+ '200': "List[UUID]",
}
response_data = self.api_client.call_api(
*_param,
@@ -6874,7 +6892,7 @@ def set_group_reviewers(
@validate_call
def set_group_reviewers_with_http_info(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
reviewer_id_list: ReviewerIDList,
_request_timeout: Union[
None,
@@ -6888,13 +6906,13 @@ def set_group_reviewers_with_http_info(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> ApiResponse[List[str]]:
+ ) -> ApiResponse[List[UUID]]:
"""(Deprecated) set_group_reviewers
Sets the list of reviewers for a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param reviewer_id_list: (required)
:type reviewer_id_list: ReviewerIDList
:param _request_timeout: timeout setting for this request. If one
@@ -6930,7 +6948,7 @@ def set_group_reviewers_with_http_info(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "List[str]",
+ '200': "List[UUID]",
}
response_data = self.api_client.call_api(
*_param,
@@ -6946,7 +6964,7 @@ def set_group_reviewers_with_http_info(
@validate_call
def set_group_reviewers_without_preload_content(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
reviewer_id_list: ReviewerIDList,
_request_timeout: Union[
None,
@@ -6966,7 +6984,7 @@ def set_group_reviewers_without_preload_content(
Sets the list of reviewers for a group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param reviewer_id_list: (required)
:type reviewer_id_list: ReviewerIDList
:param _request_timeout: timeout setting for this request. If one
@@ -7002,7 +7020,7 @@ def set_group_reviewers_without_preload_content(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "List[str]",
+ '200': "List[UUID]",
}
response_data = self.api_client.call_api(
*_param,
@@ -7094,7 +7112,7 @@ def _set_group_reviewers_serialize(
@validate_call
def set_group_visibility(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
visibility_info: VisibilityInfo,
_request_timeout: Union[
None,
@@ -7114,7 +7132,7 @@ def set_group_visibility(
Sets the visibility of this group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param visibility_info: (required)
:type visibility_info: VisibilityInfo
:param _request_timeout: timeout setting for this request. If one
@@ -7165,7 +7183,7 @@ def set_group_visibility(
@validate_call
def set_group_visibility_with_http_info(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
visibility_info: VisibilityInfo,
_request_timeout: Union[
None,
@@ -7185,7 +7203,7 @@ def set_group_visibility_with_http_info(
Sets the visibility of this group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param visibility_info: (required)
:type visibility_info: VisibilityInfo
:param _request_timeout: timeout setting for this request. If one
@@ -7236,7 +7254,7 @@ def set_group_visibility_with_http_info(
@validate_call
def set_group_visibility_without_preload_content(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
visibility_info: VisibilityInfo,
_request_timeout: Union[
None,
@@ -7256,7 +7274,7 @@ def set_group_visibility_without_preload_content(
Sets the visibility of this group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param visibility_info: (required)
:type visibility_info: VisibilityInfo
:param _request_timeout: timeout setting for this request. If one
@@ -7383,8 +7401,8 @@ def _set_group_visibility_serialize(
@validate_call
def update_group_user(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
- user_id: Annotated[StrictStr, Field(description="The ID of the user whose access is being updated.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user whose access is being updated.")],
update_group_user_request: UpdateGroupUserRequest,
_request_timeout: Union[
None,
@@ -7404,9 +7422,9 @@ def update_group_user(
Updates a user's access level or duration in this group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param user_id: The ID of the user whose access is being updated. (required)
- :type user_id: str
+ :type user_id: UUID
:param update_group_user_request: (required)
:type update_group_user_request: UpdateGroupUserRequest
:param _request_timeout: timeout setting for this request. If one
@@ -7458,8 +7476,8 @@ def update_group_user(
@validate_call
def update_group_user_with_http_info(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
- user_id: Annotated[StrictStr, Field(description="The ID of the user whose access is being updated.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user whose access is being updated.")],
update_group_user_request: UpdateGroupUserRequest,
_request_timeout: Union[
None,
@@ -7479,9 +7497,9 @@ def update_group_user_with_http_info(
Updates a user's access level or duration in this group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param user_id: The ID of the user whose access is being updated. (required)
- :type user_id: str
+ :type user_id: UUID
:param update_group_user_request: (required)
:type update_group_user_request: UpdateGroupUserRequest
:param _request_timeout: timeout setting for this request. If one
@@ -7533,8 +7551,8 @@ def update_group_user_with_http_info(
@validate_call
def update_group_user_without_preload_content(
self,
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
- user_id: Annotated[StrictStr, Field(description="The ID of the user whose access is being updated.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user whose access is being updated.")],
update_group_user_request: UpdateGroupUserRequest,
_request_timeout: Union[
None,
@@ -7554,9 +7572,9 @@ def update_group_user_without_preload_content(
Updates a user's access level or duration in this group.
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param user_id: The ID of the user whose access is being updated. (required)
- :type user_id: str
+ :type user_id: UUID
:param update_group_user_request: (required)
:type update_group_user_request: UpdateGroupUserRequest
:param _request_timeout: timeout setting for this request. If one
diff --git a/opal_security/api/idp_group_mappings_api.py b/opal_security/api/idp_group_mappings_api.py
index c560bb6..d563157 100644
--- a/opal_security/api/idp_group_mappings_api.py
+++ b/opal_security/api/idp_group_mappings_api.py
@@ -17,9 +17,10 @@
from typing import Any, Dict, List, Optional, Tuple, Union
from typing_extensions import Annotated
-from pydantic import Field, StrictStr
+from pydantic import Field
from typing import Optional
from typing_extensions import Annotated
+from uuid import UUID
from opal_security.models.create_idp_group_mapping_request import CreateIdpGroupMappingRequest
from opal_security.models.idp_group_mapping import IdpGroupMapping
from opal_security.models.idp_group_mapping_list import IdpGroupMappingList
@@ -46,8 +47,8 @@ def __init__(self, api_client=None) -> None:
@validate_call
def create_idp_group_mapping(
self,
- app_resource_id: Annotated[StrictStr, Field(description="The ID of the Okta app.")],
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ app_resource_id: Annotated[UUID, Field(description="The ID of the Okta app.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
create_idp_group_mapping_request: Optional[CreateIdpGroupMappingRequest] = None,
_request_timeout: Union[
None,
@@ -67,9 +68,9 @@ def create_idp_group_mapping(
Creates or updates an individual `IdpGroupMapping` object (upsert operation). **Behavior:** - If the mapping doesn't exist, it will be created with the provided values - If the mapping exists, only the fields provided in the request will be updated
:param app_resource_id: The ID of the Okta app. (required)
- :type app_resource_id: str
+ :type app_resource_id: UUID
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param create_idp_group_mapping_request:
:type create_idp_group_mapping_request: CreateIdpGroupMappingRequest
:param _request_timeout: timeout setting for this request. If one
@@ -121,8 +122,8 @@ def create_idp_group_mapping(
@validate_call
def create_idp_group_mapping_with_http_info(
self,
- app_resource_id: Annotated[StrictStr, Field(description="The ID of the Okta app.")],
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ app_resource_id: Annotated[UUID, Field(description="The ID of the Okta app.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
create_idp_group_mapping_request: Optional[CreateIdpGroupMappingRequest] = None,
_request_timeout: Union[
None,
@@ -142,9 +143,9 @@ def create_idp_group_mapping_with_http_info(
Creates or updates an individual `IdpGroupMapping` object (upsert operation). **Behavior:** - If the mapping doesn't exist, it will be created with the provided values - If the mapping exists, only the fields provided in the request will be updated
:param app_resource_id: The ID of the Okta app. (required)
- :type app_resource_id: str
+ :type app_resource_id: UUID
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param create_idp_group_mapping_request:
:type create_idp_group_mapping_request: CreateIdpGroupMappingRequest
:param _request_timeout: timeout setting for this request. If one
@@ -196,8 +197,8 @@ def create_idp_group_mapping_with_http_info(
@validate_call
def create_idp_group_mapping_without_preload_content(
self,
- app_resource_id: Annotated[StrictStr, Field(description="The ID of the Okta app.")],
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ app_resource_id: Annotated[UUID, Field(description="The ID of the Okta app.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
create_idp_group_mapping_request: Optional[CreateIdpGroupMappingRequest] = None,
_request_timeout: Union[
None,
@@ -217,9 +218,9 @@ def create_idp_group_mapping_without_preload_content(
Creates or updates an individual `IdpGroupMapping` object (upsert operation). **Behavior:** - If the mapping doesn't exist, it will be created with the provided values - If the mapping exists, only the fields provided in the request will be updated
:param app_resource_id: The ID of the Okta app. (required)
- :type app_resource_id: str
+ :type app_resource_id: UUID
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param create_idp_group_mapping_request:
:type create_idp_group_mapping_request: CreateIdpGroupMappingRequest
:param _request_timeout: timeout setting for this request. If one
@@ -350,8 +351,8 @@ def _create_idp_group_mapping_serialize(
@validate_call
def delete_idp_group_mappings(
self,
- app_resource_id: Annotated[StrictStr, Field(description="The ID of the Okta app.")],
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ app_resource_id: Annotated[UUID, Field(description="The ID of the Okta app.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -370,9 +371,9 @@ def delete_idp_group_mappings(
Deletes an `IdpGroupMapping` object.
:param app_resource_id: The ID of the Okta app. (required)
- :type app_resource_id: str
+ :type app_resource_id: UUID
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -421,8 +422,8 @@ def delete_idp_group_mappings(
@validate_call
def delete_idp_group_mappings_with_http_info(
self,
- app_resource_id: Annotated[StrictStr, Field(description="The ID of the Okta app.")],
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ app_resource_id: Annotated[UUID, Field(description="The ID of the Okta app.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -441,9 +442,9 @@ def delete_idp_group_mappings_with_http_info(
Deletes an `IdpGroupMapping` object.
:param app_resource_id: The ID of the Okta app. (required)
- :type app_resource_id: str
+ :type app_resource_id: UUID
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -492,8 +493,8 @@ def delete_idp_group_mappings_with_http_info(
@validate_call
def delete_idp_group_mappings_without_preload_content(
self,
- app_resource_id: Annotated[StrictStr, Field(description="The ID of the Okta app.")],
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ app_resource_id: Annotated[UUID, Field(description="The ID of the Okta app.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -512,9 +513,9 @@ def delete_idp_group_mappings_without_preload_content(
Deletes an `IdpGroupMapping` object.
:param app_resource_id: The ID of the Okta app. (required)
- :type app_resource_id: str
+ :type app_resource_id: UUID
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -619,8 +620,8 @@ def _delete_idp_group_mappings_serialize(
@validate_call
def get_idp_group_mapping(
self,
- app_resource_id: Annotated[StrictStr, Field(description="The ID of the Okta app.")],
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ app_resource_id: Annotated[UUID, Field(description="The ID of the Okta app.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -639,9 +640,9 @@ def get_idp_group_mapping(
Gets an `IdpGroupMapping` object for an Okta app and group.
:param app_resource_id: The ID of the Okta app. (required)
- :type app_resource_id: str
+ :type app_resource_id: UUID
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -690,8 +691,8 @@ def get_idp_group_mapping(
@validate_call
def get_idp_group_mapping_with_http_info(
self,
- app_resource_id: Annotated[StrictStr, Field(description="The ID of the Okta app.")],
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ app_resource_id: Annotated[UUID, Field(description="The ID of the Okta app.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -710,9 +711,9 @@ def get_idp_group_mapping_with_http_info(
Gets an `IdpGroupMapping` object for an Okta app and group.
:param app_resource_id: The ID of the Okta app. (required)
- :type app_resource_id: str
+ :type app_resource_id: UUID
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -761,8 +762,8 @@ def get_idp_group_mapping_with_http_info(
@validate_call
def get_idp_group_mapping_without_preload_content(
self,
- app_resource_id: Annotated[StrictStr, Field(description="The ID of the Okta app.")],
- group_id: Annotated[StrictStr, Field(description="The ID of the group.")],
+ app_resource_id: Annotated[UUID, Field(description="The ID of the Okta app.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -781,9 +782,9 @@ def get_idp_group_mapping_without_preload_content(
Gets an `IdpGroupMapping` object for an Okta app and group.
:param app_resource_id: The ID of the Okta app. (required)
- :type app_resource_id: str
+ :type app_resource_id: UUID
:param group_id: The ID of the group. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -895,7 +896,7 @@ def _get_idp_group_mapping_serialize(
@validate_call
def get_idp_group_mappings(
self,
- app_resource_id: Annotated[StrictStr, Field(description="The ID of the Okta app.")],
+ app_resource_id: Annotated[UUID, Field(description="The ID of the Okta app.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -914,7 +915,7 @@ def get_idp_group_mappings(
Returns the configured set of available `IdpGroupMapping` objects for an Okta app.
:param app_resource_id: The ID of the Okta app. (required)
- :type app_resource_id: str
+ :type app_resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -962,7 +963,7 @@ def get_idp_group_mappings(
@validate_call
def get_idp_group_mappings_with_http_info(
self,
- app_resource_id: Annotated[StrictStr, Field(description="The ID of the Okta app.")],
+ app_resource_id: Annotated[UUID, Field(description="The ID of the Okta app.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -981,7 +982,7 @@ def get_idp_group_mappings_with_http_info(
Returns the configured set of available `IdpGroupMapping` objects for an Okta app.
:param app_resource_id: The ID of the Okta app. (required)
- :type app_resource_id: str
+ :type app_resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1029,7 +1030,7 @@ def get_idp_group_mappings_with_http_info(
@validate_call
def get_idp_group_mappings_without_preload_content(
self,
- app_resource_id: Annotated[StrictStr, Field(description="The ID of the Okta app.")],
+ app_resource_id: Annotated[UUID, Field(description="The ID of the Okta app.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1048,7 +1049,7 @@ def get_idp_group_mappings_without_preload_content(
Returns the configured set of available `IdpGroupMapping` objects for an Okta app.
:param app_resource_id: The ID of the Okta app. (required)
- :type app_resource_id: str
+ :type app_resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1156,7 +1157,7 @@ def _get_idp_group_mappings_serialize(
@validate_call
def update_idp_group_mappings(
self,
- app_resource_id: Annotated[StrictStr, Field(description="The ID of the Okta app.")],
+ app_resource_id: Annotated[UUID, Field(description="The ID of the Okta app.")],
update_idp_group_mappings_request: UpdateIdpGroupMappingsRequest,
_request_timeout: Union[
None,
@@ -1176,7 +1177,7 @@ def update_idp_group_mappings(
Updates the list of available `IdpGroupMapping` objects for an Okta app.
:param app_resource_id: The ID of the Okta app. (required)
- :type app_resource_id: str
+ :type app_resource_id: UUID
:param update_idp_group_mappings_request: (required)
:type update_idp_group_mappings_request: UpdateIdpGroupMappingsRequest
:param _request_timeout: timeout setting for this request. If one
@@ -1227,7 +1228,7 @@ def update_idp_group_mappings(
@validate_call
def update_idp_group_mappings_with_http_info(
self,
- app_resource_id: Annotated[StrictStr, Field(description="The ID of the Okta app.")],
+ app_resource_id: Annotated[UUID, Field(description="The ID of the Okta app.")],
update_idp_group_mappings_request: UpdateIdpGroupMappingsRequest,
_request_timeout: Union[
None,
@@ -1247,7 +1248,7 @@ def update_idp_group_mappings_with_http_info(
Updates the list of available `IdpGroupMapping` objects for an Okta app.
:param app_resource_id: The ID of the Okta app. (required)
- :type app_resource_id: str
+ :type app_resource_id: UUID
:param update_idp_group_mappings_request: (required)
:type update_idp_group_mappings_request: UpdateIdpGroupMappingsRequest
:param _request_timeout: timeout setting for this request. If one
@@ -1298,7 +1299,7 @@ def update_idp_group_mappings_with_http_info(
@validate_call
def update_idp_group_mappings_without_preload_content(
self,
- app_resource_id: Annotated[StrictStr, Field(description="The ID of the Okta app.")],
+ app_resource_id: Annotated[UUID, Field(description="The ID of the Okta app.")],
update_idp_group_mappings_request: UpdateIdpGroupMappingsRequest,
_request_timeout: Union[
None,
@@ -1318,7 +1319,7 @@ def update_idp_group_mappings_without_preload_content(
Updates the list of available `IdpGroupMapping` objects for an Okta app.
:param app_resource_id: The ID of the Okta app. (required)
- :type app_resource_id: str
+ :type app_resource_id: UUID
:param update_idp_group_mappings_request: (required)
:type update_idp_group_mappings_request: UpdateIdpGroupMappingsRequest
:param _request_timeout: timeout setting for this request. If one
diff --git a/opal_security/api/message_channels_api.py b/opal_security/api/message_channels_api.py
index b5470cb..ca5fbe3 100644
--- a/opal_security/api/message_channels_api.py
+++ b/opal_security/api/message_channels_api.py
@@ -17,8 +17,9 @@
from typing import Any, Dict, List, Optional, Tuple, Union
from typing_extensions import Annotated
-from pydantic import Field, StrictStr
+from pydantic import Field
from typing_extensions import Annotated
+from uuid import UUID
from opal_security.models.create_message_channel_info import CreateMessageChannelInfo
from opal_security.models.message_channel import MessageChannel
from opal_security.models.message_channel_list import MessageChannelList
@@ -318,7 +319,7 @@ def _create_message_channel_serialize(
@validate_call
def get_message_channel(
self,
- message_channel_id: Annotated[StrictStr, Field(description="The ID of the message_channel.")],
+ message_channel_id: Annotated[UUID, Field(description="The ID of the message_channel.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -337,7 +338,7 @@ def get_message_channel(
Gets a `MessageChannel` object.
:param message_channel_id: The ID of the message_channel. (required)
- :type message_channel_id: str
+ :type message_channel_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -385,7 +386,7 @@ def get_message_channel(
@validate_call
def get_message_channel_with_http_info(
self,
- message_channel_id: Annotated[StrictStr, Field(description="The ID of the message_channel.")],
+ message_channel_id: Annotated[UUID, Field(description="The ID of the message_channel.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -404,7 +405,7 @@ def get_message_channel_with_http_info(
Gets a `MessageChannel` object.
:param message_channel_id: The ID of the message_channel. (required)
- :type message_channel_id: str
+ :type message_channel_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -452,7 +453,7 @@ def get_message_channel_with_http_info(
@validate_call
def get_message_channel_without_preload_content(
self,
- message_channel_id: Annotated[StrictStr, Field(description="The ID of the message_channel.")],
+ message_channel_id: Annotated[UUID, Field(description="The ID of the message_channel.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -471,7 +472,7 @@ def get_message_channel_without_preload_content(
Gets a `MessageChannel` object.
:param message_channel_id: The ID of the message_channel. (required)
- :type message_channel_id: str
+ :type message_channel_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
diff --git a/opal_security/api/on_call_schedules_api.py b/opal_security/api/on_call_schedules_api.py
index c52f8df..79068a6 100644
--- a/opal_security/api/on_call_schedules_api.py
+++ b/opal_security/api/on_call_schedules_api.py
@@ -17,8 +17,9 @@
from typing import Any, Dict, List, Optional, Tuple, Union
from typing_extensions import Annotated
-from pydantic import Field, StrictStr
+from pydantic import Field
from typing_extensions import Annotated
+from uuid import UUID
from opal_security.models.create_on_call_schedule_info import CreateOnCallScheduleInfo
from opal_security.models.on_call_schedule import OnCallSchedule
from opal_security.models.on_call_schedule_list import OnCallScheduleList
@@ -318,7 +319,7 @@ def _create_on_call_schedule_serialize(
@validate_call
def get_on_call_schedule(
self,
- on_call_schedule_id: Annotated[StrictStr, Field(description="The ID of the on_call_schedule.")],
+ on_call_schedule_id: Annotated[UUID, Field(description="The ID of the on_call_schedule.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -337,7 +338,7 @@ def get_on_call_schedule(
Gets a `OnCallSchedule` object.
:param on_call_schedule_id: The ID of the on_call_schedule. (required)
- :type on_call_schedule_id: str
+ :type on_call_schedule_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -385,7 +386,7 @@ def get_on_call_schedule(
@validate_call
def get_on_call_schedule_with_http_info(
self,
- on_call_schedule_id: Annotated[StrictStr, Field(description="The ID of the on_call_schedule.")],
+ on_call_schedule_id: Annotated[UUID, Field(description="The ID of the on_call_schedule.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -404,7 +405,7 @@ def get_on_call_schedule_with_http_info(
Gets a `OnCallSchedule` object.
:param on_call_schedule_id: The ID of the on_call_schedule. (required)
- :type on_call_schedule_id: str
+ :type on_call_schedule_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -452,7 +453,7 @@ def get_on_call_schedule_with_http_info(
@validate_call
def get_on_call_schedule_without_preload_content(
self,
- on_call_schedule_id: Annotated[StrictStr, Field(description="The ID of the on_call_schedule.")],
+ on_call_schedule_id: Annotated[UUID, Field(description="The ID of the on_call_schedule.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -471,7 +472,7 @@ def get_on_call_schedule_without_preload_content(
Gets a `OnCallSchedule` object.
:param on_call_schedule_id: The ID of the on_call_schedule. (required)
- :type on_call_schedule_id: str
+ :type on_call_schedule_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
diff --git a/opal_security/api/owners_api.py b/opal_security/api/owners_api.py
index 46248aa..331351d 100644
--- a/opal_security/api/owners_api.py
+++ b/opal_security/api/owners_api.py
@@ -20,6 +20,7 @@
from pydantic import Field, StrictStr
from typing import Optional
from typing_extensions import Annotated
+from uuid import UUID
from opal_security.models.create_owner_info import CreateOwnerInfo
from opal_security.models.owner import Owner
from opal_security.models.paginated_owners_list import PaginatedOwnersList
@@ -322,7 +323,7 @@ def _create_owner_serialize(
@validate_call
def delete_owner(
self,
- owner_id: Annotated[StrictStr, Field(description="The ID of the owner.")],
+ owner_id: Annotated[UUID, Field(description="The ID of the owner.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -341,7 +342,7 @@ def delete_owner(
Deletes an owner.
:param owner_id: The ID of the owner. (required)
- :type owner_id: str
+ :type owner_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -389,7 +390,7 @@ def delete_owner(
@validate_call
def delete_owner_with_http_info(
self,
- owner_id: Annotated[StrictStr, Field(description="The ID of the owner.")],
+ owner_id: Annotated[UUID, Field(description="The ID of the owner.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -408,7 +409,7 @@ def delete_owner_with_http_info(
Deletes an owner.
:param owner_id: The ID of the owner. (required)
- :type owner_id: str
+ :type owner_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -456,7 +457,7 @@ def delete_owner_with_http_info(
@validate_call
def delete_owner_without_preload_content(
self,
- owner_id: Annotated[StrictStr, Field(description="The ID of the owner.")],
+ owner_id: Annotated[UUID, Field(description="The ID of the owner.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -475,7 +476,7 @@ def delete_owner_without_preload_content(
Deletes an owner.
:param owner_id: The ID of the owner. (required)
- :type owner_id: str
+ :type owner_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -576,7 +577,7 @@ def _delete_owner_serialize(
@validate_call
def get_owner(
self,
- owner_id: Annotated[StrictStr, Field(description="The ID of the owner.")],
+ owner_id: Annotated[UUID, Field(description="The ID of the owner.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -595,7 +596,7 @@ def get_owner(
Returns an `Owner` object.
:param owner_id: The ID of the owner. (required)
- :type owner_id: str
+ :type owner_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -643,7 +644,7 @@ def get_owner(
@validate_call
def get_owner_with_http_info(
self,
- owner_id: Annotated[StrictStr, Field(description="The ID of the owner.")],
+ owner_id: Annotated[UUID, Field(description="The ID of the owner.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -662,7 +663,7 @@ def get_owner_with_http_info(
Returns an `Owner` object.
:param owner_id: The ID of the owner. (required)
- :type owner_id: str
+ :type owner_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -710,7 +711,7 @@ def get_owner_with_http_info(
@validate_call
def get_owner_without_preload_content(
self,
- owner_id: Annotated[StrictStr, Field(description="The ID of the owner.")],
+ owner_id: Annotated[UUID, Field(description="The ID of the owner.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -729,7 +730,7 @@ def get_owner_without_preload_content(
Returns an `Owner` object.
:param owner_id: The ID of the owner. (required)
- :type owner_id: str
+ :type owner_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1098,7 +1099,7 @@ def _get_owner_from_name_serialize(
@validate_call
def get_owner_users(
self,
- owner_id: Annotated[StrictStr, Field(description="The ID of the owner.")],
+ owner_id: Annotated[UUID, Field(description="The ID of the owner.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1117,7 +1118,7 @@ def get_owner_users(
Gets the list of users for this owner, in escalation priority order if applicable.
:param owner_id: The ID of the owner. (required)
- :type owner_id: str
+ :type owner_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1165,7 +1166,7 @@ def get_owner_users(
@validate_call
def get_owner_users_with_http_info(
self,
- owner_id: Annotated[StrictStr, Field(description="The ID of the owner.")],
+ owner_id: Annotated[UUID, Field(description="The ID of the owner.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1184,7 +1185,7 @@ def get_owner_users_with_http_info(
Gets the list of users for this owner, in escalation priority order if applicable.
:param owner_id: The ID of the owner. (required)
- :type owner_id: str
+ :type owner_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1232,7 +1233,7 @@ def get_owner_users_with_http_info(
@validate_call
def get_owner_users_without_preload_content(
self,
- owner_id: Annotated[StrictStr, Field(description="The ID of the owner.")],
+ owner_id: Annotated[UUID, Field(description="The ID of the owner.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1251,7 +1252,7 @@ def get_owner_users_without_preload_content(
Gets the list of users for this owner, in escalation priority order if applicable.
:param owner_id: The ID of the owner. (required)
- :type owner_id: str
+ :type owner_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1656,7 +1657,7 @@ def _get_owners_serialize(
@validate_call
def set_owner_users(
self,
- owner_id: Annotated[StrictStr, Field(description="The ID of the owner.")],
+ owner_id: Annotated[UUID, Field(description="The ID of the owner.")],
user_id_list: UserIDList,
_request_timeout: Union[
None,
@@ -1676,7 +1677,7 @@ def set_owner_users(
Sets the list of users for this owner. If escalation is enabled, the order of this list is the escalation priority order of the users. If the owner has a source group, adding or removing users from this list won't be possible.
:param owner_id: The ID of the owner. (required)
- :type owner_id: str
+ :type owner_id: UUID
:param user_id_list: (required)
:type user_id_list: UserIDList
:param _request_timeout: timeout setting for this request. If one
@@ -1727,7 +1728,7 @@ def set_owner_users(
@validate_call
def set_owner_users_with_http_info(
self,
- owner_id: Annotated[StrictStr, Field(description="The ID of the owner.")],
+ owner_id: Annotated[UUID, Field(description="The ID of the owner.")],
user_id_list: UserIDList,
_request_timeout: Union[
None,
@@ -1747,7 +1748,7 @@ def set_owner_users_with_http_info(
Sets the list of users for this owner. If escalation is enabled, the order of this list is the escalation priority order of the users. If the owner has a source group, adding or removing users from this list won't be possible.
:param owner_id: The ID of the owner. (required)
- :type owner_id: str
+ :type owner_id: UUID
:param user_id_list: (required)
:type user_id_list: UserIDList
:param _request_timeout: timeout setting for this request. If one
@@ -1798,7 +1799,7 @@ def set_owner_users_with_http_info(
@validate_call
def set_owner_users_without_preload_content(
self,
- owner_id: Annotated[StrictStr, Field(description="The ID of the owner.")],
+ owner_id: Annotated[UUID, Field(description="The ID of the owner.")],
user_id_list: UserIDList,
_request_timeout: Union[
None,
@@ -1818,7 +1819,7 @@ def set_owner_users_without_preload_content(
Sets the list of users for this owner. If escalation is enabled, the order of this list is the escalation priority order of the users. If the owner has a source group, adding or removing users from this list won't be possible.
:param owner_id: The ID of the owner. (required)
- :type owner_id: str
+ :type owner_id: UUID
:param user_id_list: (required)
:type user_id_list: UserIDList
:param _request_timeout: timeout setting for this request. If one
diff --git a/opal_security/api/requests_api.py b/opal_security/api/requests_api.py
index fcd2b5c..b3d13cb 100644
--- a/opal_security/api/requests_api.py
+++ b/opal_security/api/requests_api.py
@@ -20,6 +20,7 @@
from pydantic import Field, StrictBool, StrictStr
from typing import Any, Dict, Optional
from typing_extensions import Annotated
+from uuid import UUID
from opal_security.models.approve_request200_response import ApproveRequest200Response
from opal_security.models.approve_request_request import ApproveRequestRequest
from opal_security.models.create_request200_response import CreateRequest200Response
@@ -52,7 +53,7 @@ def __init__(self, api_client=None) -> None:
@validate_call
def approve_request(
self,
- id: Annotated[StrictStr, Field(description="The ID of the request to approve")],
+ id: Annotated[UUID, Field(description="The ID of the request to approve")],
approve_request_request: Annotated[ApproveRequestRequest, Field(description="Approval parameters")],
_request_timeout: Union[
None,
@@ -72,7 +73,7 @@ def approve_request(
Approve an access request
:param id: The ID of the request to approve (required)
- :type id: str
+ :type id: UUID
:param approve_request_request: Approval parameters (required)
:type approve_request_request: ApproveRequestRequest
:param _request_timeout: timeout setting for this request. If one
@@ -123,7 +124,7 @@ def approve_request(
@validate_call
def approve_request_with_http_info(
self,
- id: Annotated[StrictStr, Field(description="The ID of the request to approve")],
+ id: Annotated[UUID, Field(description="The ID of the request to approve")],
approve_request_request: Annotated[ApproveRequestRequest, Field(description="Approval parameters")],
_request_timeout: Union[
None,
@@ -143,7 +144,7 @@ def approve_request_with_http_info(
Approve an access request
:param id: The ID of the request to approve (required)
- :type id: str
+ :type id: UUID
:param approve_request_request: Approval parameters (required)
:type approve_request_request: ApproveRequestRequest
:param _request_timeout: timeout setting for this request. If one
@@ -194,7 +195,7 @@ def approve_request_with_http_info(
@validate_call
def approve_request_without_preload_content(
self,
- id: Annotated[StrictStr, Field(description="The ID of the request to approve")],
+ id: Annotated[UUID, Field(description="The ID of the request to approve")],
approve_request_request: Annotated[ApproveRequestRequest, Field(description="Approval parameters")],
_request_timeout: Union[
None,
@@ -214,7 +215,7 @@ def approve_request_without_preload_content(
Approve an access request
:param id: The ID of the request to approve (required)
- :type id: str
+ :type id: UUID
:param approve_request_request: Approval parameters (required)
:type approve_request_request: ApproveRequestRequest
:param _request_timeout: timeout setting for this request. If one
@@ -615,7 +616,7 @@ def _create_request_serialize(
@validate_call
def create_request_comment(
self,
- id: Annotated[StrictStr, Field(description="The ID of the request to comment on")],
+ id: Annotated[UUID, Field(description="The ID of the request to comment on")],
create_request_comment_request: Annotated[CreateRequestCommentRequest, Field(description="Comment parameters")],
_request_timeout: Union[
None,
@@ -635,7 +636,7 @@ def create_request_comment(
Comment on an access request
:param id: The ID of the request to comment on (required)
- :type id: str
+ :type id: UUID
:param create_request_comment_request: Comment parameters (required)
:type create_request_comment_request: CreateRequestCommentRequest
:param _request_timeout: timeout setting for this request. If one
@@ -686,7 +687,7 @@ def create_request_comment(
@validate_call
def create_request_comment_with_http_info(
self,
- id: Annotated[StrictStr, Field(description="The ID of the request to comment on")],
+ id: Annotated[UUID, Field(description="The ID of the request to comment on")],
create_request_comment_request: Annotated[CreateRequestCommentRequest, Field(description="Comment parameters")],
_request_timeout: Union[
None,
@@ -706,7 +707,7 @@ def create_request_comment_with_http_info(
Comment on an access request
:param id: The ID of the request to comment on (required)
- :type id: str
+ :type id: UUID
:param create_request_comment_request: Comment parameters (required)
:type create_request_comment_request: CreateRequestCommentRequest
:param _request_timeout: timeout setting for this request. If one
@@ -757,7 +758,7 @@ def create_request_comment_with_http_info(
@validate_call
def create_request_comment_without_preload_content(
self,
- id: Annotated[StrictStr, Field(description="The ID of the request to comment on")],
+ id: Annotated[UUID, Field(description="The ID of the request to comment on")],
create_request_comment_request: Annotated[CreateRequestCommentRequest, Field(description="Comment parameters")],
_request_timeout: Union[
None,
@@ -777,7 +778,7 @@ def create_request_comment_without_preload_content(
Comment on an access request
:param id: The ID of the request to comment on (required)
- :type id: str
+ :type id: UUID
:param create_request_comment_request: Comment parameters (required)
:type create_request_comment_request: CreateRequestCommentRequest
:param _request_timeout: timeout setting for this request. If one
@@ -904,7 +905,7 @@ def _create_request_comment_serialize(
@validate_call
def deny_request(
self,
- id: Annotated[StrictStr, Field(description="The ID of the request to deny")],
+ id: Annotated[UUID, Field(description="The ID of the request to deny")],
deny_request_request: Annotated[DenyRequestRequest, Field(description="Denial parameters")],
_request_timeout: Union[
None,
@@ -924,7 +925,7 @@ def deny_request(
Deny an access request
:param id: The ID of the request to deny (required)
- :type id: str
+ :type id: UUID
:param deny_request_request: Denial parameters (required)
:type deny_request_request: DenyRequestRequest
:param _request_timeout: timeout setting for this request. If one
@@ -975,7 +976,7 @@ def deny_request(
@validate_call
def deny_request_with_http_info(
self,
- id: Annotated[StrictStr, Field(description="The ID of the request to deny")],
+ id: Annotated[UUID, Field(description="The ID of the request to deny")],
deny_request_request: Annotated[DenyRequestRequest, Field(description="Denial parameters")],
_request_timeout: Union[
None,
@@ -995,7 +996,7 @@ def deny_request_with_http_info(
Deny an access request
:param id: The ID of the request to deny (required)
- :type id: str
+ :type id: UUID
:param deny_request_request: Denial parameters (required)
:type deny_request_request: DenyRequestRequest
:param _request_timeout: timeout setting for this request. If one
@@ -1046,7 +1047,7 @@ def deny_request_with_http_info(
@validate_call
def deny_request_without_preload_content(
self,
- id: Annotated[StrictStr, Field(description="The ID of the request to deny")],
+ id: Annotated[UUID, Field(description="The ID of the request to deny")],
deny_request_request: Annotated[DenyRequestRequest, Field(description="Denial parameters")],
_request_timeout: Union[
None,
@@ -1066,7 +1067,7 @@ def deny_request_without_preload_content(
Deny an access request
:param id: The ID of the request to deny (required)
- :type id: str
+ :type id: UUID
:param deny_request_request: Denial parameters (required)
:type deny_request_request: DenyRequestRequest
:param _request_timeout: timeout setting for this request. If one
@@ -1193,7 +1194,7 @@ def _deny_request_serialize(
@validate_call
def get_request(
self,
- id: Annotated[StrictStr, Field(description="The ID of the request.")],
+ id: Annotated[UUID, Field(description="The ID of the request.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1212,7 +1213,7 @@ def get_request(
Returns a request by ID.
:param id: The ID of the request. (required)
- :type id: str
+ :type id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1260,7 +1261,7 @@ def get_request(
@validate_call
def get_request_with_http_info(
self,
- id: Annotated[StrictStr, Field(description="The ID of the request.")],
+ id: Annotated[UUID, Field(description="The ID of the request.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1279,7 +1280,7 @@ def get_request_with_http_info(
Returns a request by ID.
:param id: The ID of the request. (required)
- :type id: str
+ :type id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1327,7 +1328,7 @@ def get_request_with_http_info(
@validate_call
def get_request_without_preload_content(
self,
- id: Annotated[StrictStr, Field(description="The ID of the request.")],
+ id: Annotated[UUID, Field(description="The ID of the request.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1346,7 +1347,7 @@ def get_request_without_preload_content(
Returns a request by ID.
:param id: The ID of the request. (required)
- :type id: str
+ :type id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1454,7 +1455,7 @@ def _get_request_serialize(
@validate_call
def get_request_comments(
self,
- id: Annotated[StrictStr, Field(description="The ID of the request to get comments for")],
+ id: Annotated[UUID, Field(description="The ID of the request to get comments for")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1473,7 +1474,7 @@ def get_request_comments(
Returns a list of comments for a specific request.
:param id: The ID of the request to get comments for (required)
- :type id: str
+ :type id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1521,7 +1522,7 @@ def get_request_comments(
@validate_call
def get_request_comments_with_http_info(
self,
- id: Annotated[StrictStr, Field(description="The ID of the request to get comments for")],
+ id: Annotated[UUID, Field(description="The ID of the request to get comments for")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1540,7 +1541,7 @@ def get_request_comments_with_http_info(
Returns a list of comments for a specific request.
:param id: The ID of the request to get comments for (required)
- :type id: str
+ :type id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1588,7 +1589,7 @@ def get_request_comments_with_http_info(
@validate_call
def get_request_comments_without_preload_content(
self,
- id: Annotated[StrictStr, Field(description="The ID of the request to get comments for")],
+ id: Annotated[UUID, Field(description="The ID of the request to get comments for")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1607,7 +1608,7 @@ def get_request_comments_without_preload_content(
Returns a list of comments for a specific request.
:param id: The ID of the request to get comments for (required)
- :type id: str
+ :type id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1717,8 +1718,8 @@ def get_requests(
self,
start_date_filter: Annotated[Optional[StrictStr], Field(description="A start date filter for the events.")] = None,
end_date_filter: Annotated[Optional[StrictStr], Field(description="An end date filter for the events.")] = None,
- requester_id: Annotated[Optional[StrictStr], Field(description="Filter requests by their requester ID.")] = None,
- target_user_id: Annotated[Optional[StrictStr], Field(description="Filter requests by their target user ID.")] = None,
+ requester_id: Annotated[Optional[UUID], Field(description="Filter requests by their requester ID.")] = None,
+ target_user_id: Annotated[Optional[UUID], Field(description="Filter requests by their target user ID.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="The pagination cursor value.")] = None,
page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True)]], Field(description="Number of results to return per page. Default is 200.")] = None,
show_pending_only: Annotated[Optional[StrictBool], Field(description="Boolean toggle for if it should only show pending requests.")] = None,
@@ -1744,9 +1745,9 @@ def get_requests(
:param end_date_filter: An end date filter for the events.
:type end_date_filter: str
:param requester_id: Filter requests by their requester ID.
- :type requester_id: str
+ :type requester_id: UUID
:param target_user_id: Filter requests by their target user ID.
- :type target_user_id: str
+ :type target_user_id: UUID
:param cursor: The pagination cursor value.
:type cursor: str
:param page_size: Number of results to return per page. Default is 200.
@@ -1808,8 +1809,8 @@ def get_requests_with_http_info(
self,
start_date_filter: Annotated[Optional[StrictStr], Field(description="A start date filter for the events.")] = None,
end_date_filter: Annotated[Optional[StrictStr], Field(description="An end date filter for the events.")] = None,
- requester_id: Annotated[Optional[StrictStr], Field(description="Filter requests by their requester ID.")] = None,
- target_user_id: Annotated[Optional[StrictStr], Field(description="Filter requests by their target user ID.")] = None,
+ requester_id: Annotated[Optional[UUID], Field(description="Filter requests by their requester ID.")] = None,
+ target_user_id: Annotated[Optional[UUID], Field(description="Filter requests by their target user ID.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="The pagination cursor value.")] = None,
page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True)]], Field(description="Number of results to return per page. Default is 200.")] = None,
show_pending_only: Annotated[Optional[StrictBool], Field(description="Boolean toggle for if it should only show pending requests.")] = None,
@@ -1835,9 +1836,9 @@ def get_requests_with_http_info(
:param end_date_filter: An end date filter for the events.
:type end_date_filter: str
:param requester_id: Filter requests by their requester ID.
- :type requester_id: str
+ :type requester_id: UUID
:param target_user_id: Filter requests by their target user ID.
- :type target_user_id: str
+ :type target_user_id: UUID
:param cursor: The pagination cursor value.
:type cursor: str
:param page_size: Number of results to return per page. Default is 200.
@@ -1899,8 +1900,8 @@ def get_requests_without_preload_content(
self,
start_date_filter: Annotated[Optional[StrictStr], Field(description="A start date filter for the events.")] = None,
end_date_filter: Annotated[Optional[StrictStr], Field(description="An end date filter for the events.")] = None,
- requester_id: Annotated[Optional[StrictStr], Field(description="Filter requests by their requester ID.")] = None,
- target_user_id: Annotated[Optional[StrictStr], Field(description="Filter requests by their target user ID.")] = None,
+ requester_id: Annotated[Optional[UUID], Field(description="Filter requests by their requester ID.")] = None,
+ target_user_id: Annotated[Optional[UUID], Field(description="Filter requests by their target user ID.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="The pagination cursor value.")] = None,
page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True)]], Field(description="Number of results to return per page. Default is 200.")] = None,
show_pending_only: Annotated[Optional[StrictBool], Field(description="Boolean toggle for if it should only show pending requests.")] = None,
@@ -1926,9 +1927,9 @@ def get_requests_without_preload_content(
:param end_date_filter: An end date filter for the events.
:type end_date_filter: str
:param requester_id: Filter requests by their requester ID.
- :type requester_id: str
+ :type requester_id: UUID
:param target_user_id: Filter requests by their target user ID.
- :type target_user_id: str
+ :type target_user_id: UUID
:param cursor: The pagination cursor value.
:type cursor: str
:param page_size: Number of results to return per page. Default is 200.
@@ -2085,8 +2086,8 @@ def get_requests_relay(
last: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Number of results to return before the cursor. Use either first/after or last/before, not both.")] = None,
before: Annotated[Optional[StrictStr], Field(description="Cursor to fetch results before. Used with 'last' for backward pagination.")] = None,
status: Annotated[Optional[RequestStatusEnum], Field(description="Filter requests by their status.")] = None,
- to: Annotated[Optional[StrictStr], Field(description="Filter requests assigned to a specific user ID.")] = None,
- var_from: Annotated[Optional[StrictStr], Field(description="Filter requests made by a specific user ID.")] = None,
+ to: Annotated[Optional[UUID], Field(description="Filter requests assigned to a specific user ID.")] = None,
+ var_from: Annotated[Optional[UUID], Field(description="Filter requests made by a specific user ID.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2115,9 +2116,9 @@ def get_requests_relay(
:param status: Filter requests by their status.
:type status: RequestStatusEnum
:param to: Filter requests assigned to a specific user ID.
- :type to: str
+ :type to: UUID
:param var_from: Filter requests made by a specific user ID.
- :type var_from: str
+ :type var_from: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2177,8 +2178,8 @@ def get_requests_relay_with_http_info(
last: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Number of results to return before the cursor. Use either first/after or last/before, not both.")] = None,
before: Annotated[Optional[StrictStr], Field(description="Cursor to fetch results before. Used with 'last' for backward pagination.")] = None,
status: Annotated[Optional[RequestStatusEnum], Field(description="Filter requests by their status.")] = None,
- to: Annotated[Optional[StrictStr], Field(description="Filter requests assigned to a specific user ID.")] = None,
- var_from: Annotated[Optional[StrictStr], Field(description="Filter requests made by a specific user ID.")] = None,
+ to: Annotated[Optional[UUID], Field(description="Filter requests assigned to a specific user ID.")] = None,
+ var_from: Annotated[Optional[UUID], Field(description="Filter requests made by a specific user ID.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2207,9 +2208,9 @@ def get_requests_relay_with_http_info(
:param status: Filter requests by their status.
:type status: RequestStatusEnum
:param to: Filter requests assigned to a specific user ID.
- :type to: str
+ :type to: UUID
:param var_from: Filter requests made by a specific user ID.
- :type var_from: str
+ :type var_from: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2269,8 +2270,8 @@ def get_requests_relay_without_preload_content(
last: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Number of results to return before the cursor. Use either first/after or last/before, not both.")] = None,
before: Annotated[Optional[StrictStr], Field(description="Cursor to fetch results before. Used with 'last' for backward pagination.")] = None,
status: Annotated[Optional[RequestStatusEnum], Field(description="Filter requests by their status.")] = None,
- to: Annotated[Optional[StrictStr], Field(description="Filter requests assigned to a specific user ID.")] = None,
- var_from: Annotated[Optional[StrictStr], Field(description="Filter requests made by a specific user ID.")] = None,
+ to: Annotated[Optional[UUID], Field(description="Filter requests assigned to a specific user ID.")] = None,
+ var_from: Annotated[Optional[UUID], Field(description="Filter requests made by a specific user ID.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2299,9 +2300,9 @@ def get_requests_relay_without_preload_content(
:param status: Filter requests by their status.
:type status: RequestStatusEnum
:param to: Filter requests assigned to a specific user ID.
- :type to: str
+ :type to: UUID
:param var_from: Filter requests made by a specific user ID.
- :type var_from: str
+ :type var_from: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
diff --git a/opal_security/api/resources_api.py b/opal_security/api/resources_api.py
index 6bca9f0..203fb79 100644
--- a/opal_security/api/resources_api.py
+++ b/opal_security/api/resources_api.py
@@ -20,11 +20,13 @@
from pydantic import Field, StrictBool, StrictInt, StrictStr
from typing import List, Optional
from typing_extensions import Annotated
+from uuid import UUID
from opal_security.models.access_list import AccessList
from opal_security.models.add_resource_nhi_request import AddResourceNhiRequest
from opal_security.models.add_resource_user_request import AddResourceUserRequest
from opal_security.models.create_resource_info import CreateResourceInfo
from opal_security.models.get_resource_user200_response import GetResourceUser200Response
+from opal_security.models.group_resource_list import GroupResourceList
from opal_security.models.message_channel_id_list import MessageChannelIDList
from opal_security.models.message_channel_list import MessageChannelList
from opal_security.models.paginated_resources_list import PaginatedResourcesList
@@ -64,8 +66,8 @@ def __init__(self, api_client=None) -> None:
@validate_call
def add_resource_nhi(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
- non_human_identity_id: Annotated[StrictStr, Field(description="The resource ID of the non-human identity to add.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
+ non_human_identity_id: Annotated[UUID, Field(description="The resource ID of the non-human identity to add.")],
add_resource_nhi_request: Optional[AddResourceNhiRequest] = None,
_request_timeout: Union[
None,
@@ -85,9 +87,9 @@ def add_resource_nhi(
Gives a non-human identity access to this resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param non_human_identity_id: The resource ID of the non-human identity to add. (required)
- :type non_human_identity_id: str
+ :type non_human_identity_id: UUID
:param add_resource_nhi_request:
:type add_resource_nhi_request: AddResourceNhiRequest
:param _request_timeout: timeout setting for this request. If one
@@ -139,8 +141,8 @@ def add_resource_nhi(
@validate_call
def add_resource_nhi_with_http_info(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
- non_human_identity_id: Annotated[StrictStr, Field(description="The resource ID of the non-human identity to add.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
+ non_human_identity_id: Annotated[UUID, Field(description="The resource ID of the non-human identity to add.")],
add_resource_nhi_request: Optional[AddResourceNhiRequest] = None,
_request_timeout: Union[
None,
@@ -160,9 +162,9 @@ def add_resource_nhi_with_http_info(
Gives a non-human identity access to this resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param non_human_identity_id: The resource ID of the non-human identity to add. (required)
- :type non_human_identity_id: str
+ :type non_human_identity_id: UUID
:param add_resource_nhi_request:
:type add_resource_nhi_request: AddResourceNhiRequest
:param _request_timeout: timeout setting for this request. If one
@@ -214,8 +216,8 @@ def add_resource_nhi_with_http_info(
@validate_call
def add_resource_nhi_without_preload_content(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
- non_human_identity_id: Annotated[StrictStr, Field(description="The resource ID of the non-human identity to add.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
+ non_human_identity_id: Annotated[UUID, Field(description="The resource ID of the non-human identity to add.")],
add_resource_nhi_request: Optional[AddResourceNhiRequest] = None,
_request_timeout: Union[
None,
@@ -235,9 +237,9 @@ def add_resource_nhi_without_preload_content(
Gives a non-human identity access to this resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param non_human_identity_id: The resource ID of the non-human identity to add. (required)
- :type non_human_identity_id: str
+ :type non_human_identity_id: UUID
:param add_resource_nhi_request:
:type add_resource_nhi_request: AddResourceNhiRequest
:param _request_timeout: timeout setting for this request. If one
@@ -368,8 +370,8 @@ def _add_resource_nhi_serialize(
@validate_call
def add_resource_user(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
- user_id: Annotated[StrictStr, Field(description="The ID of the user to add.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user to add.")],
duration_minutes: Annotated[Optional[Annotated[int, Field(le=525960, strict=True)]], Field(description="The duration for which the resource can be accessed (in minutes). Use 0 to set to indefinite.")] = None,
access_level_remote_id: Annotated[Optional[StrictStr], Field(description="The remote ID of the access level to grant to this user. If omitted, the default access level remote ID value (empty string) is used.")] = None,
add_resource_user_request: Optional[AddResourceUserRequest] = None,
@@ -391,9 +393,9 @@ def add_resource_user(
Adds a user to this resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param user_id: The ID of the user to add. (required)
- :type user_id: str
+ :type user_id: UUID
:param duration_minutes: The duration for which the resource can be accessed (in minutes). Use 0 to set to indefinite.
:type duration_minutes: int
:param access_level_remote_id: The remote ID of the access level to grant to this user. If omitted, the default access level remote ID value (empty string) is used.
@@ -451,8 +453,8 @@ def add_resource_user(
@validate_call
def add_resource_user_with_http_info(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
- user_id: Annotated[StrictStr, Field(description="The ID of the user to add.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user to add.")],
duration_minutes: Annotated[Optional[Annotated[int, Field(le=525960, strict=True)]], Field(description="The duration for which the resource can be accessed (in minutes). Use 0 to set to indefinite.")] = None,
access_level_remote_id: Annotated[Optional[StrictStr], Field(description="The remote ID of the access level to grant to this user. If omitted, the default access level remote ID value (empty string) is used.")] = None,
add_resource_user_request: Optional[AddResourceUserRequest] = None,
@@ -474,9 +476,9 @@ def add_resource_user_with_http_info(
Adds a user to this resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param user_id: The ID of the user to add. (required)
- :type user_id: str
+ :type user_id: UUID
:param duration_minutes: The duration for which the resource can be accessed (in minutes). Use 0 to set to indefinite.
:type duration_minutes: int
:param access_level_remote_id: The remote ID of the access level to grant to this user. If omitted, the default access level remote ID value (empty string) is used.
@@ -534,8 +536,8 @@ def add_resource_user_with_http_info(
@validate_call
def add_resource_user_without_preload_content(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
- user_id: Annotated[StrictStr, Field(description="The ID of the user to add.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user to add.")],
duration_minutes: Annotated[Optional[Annotated[int, Field(le=525960, strict=True)]], Field(description="The duration for which the resource can be accessed (in minutes). Use 0 to set to indefinite.")] = None,
access_level_remote_id: Annotated[Optional[StrictStr], Field(description="The remote ID of the access level to grant to this user. If omitted, the default access level remote ID value (empty string) is used.")] = None,
add_resource_user_request: Optional[AddResourceUserRequest] = None,
@@ -557,9 +559,9 @@ def add_resource_user_without_preload_content(
Adds a user to this resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param user_id: The ID of the user to add. (required)
- :type user_id: str
+ :type user_id: UUID
:param duration_minutes: The duration for which the resource can be accessed (in minutes). Use 0 to set to indefinite.
:type duration_minutes: int
:param access_level_remote_id: The remote ID of the access level to grant to this user. If omitted, the default access level remote ID value (empty string) is used.
@@ -980,7 +982,7 @@ def _create_resource_serialize(
@validate_call
def delete_resource(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -999,7 +1001,7 @@ def delete_resource(
Deletes a resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1047,7 +1049,7 @@ def delete_resource(
@validate_call
def delete_resource_with_http_info(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1066,7 +1068,7 @@ def delete_resource_with_http_info(
Deletes a resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1114,7 +1116,7 @@ def delete_resource_with_http_info(
@validate_call
def delete_resource_without_preload_content(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1133,7 +1135,7 @@ def delete_resource_without_preload_content(
Deletes a resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1234,8 +1236,8 @@ def _delete_resource_serialize(
@validate_call
def delete_resource_nhi(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
- non_human_identity_id: Annotated[StrictStr, Field(description="The resource ID of the non-human identity to remove from this resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
+ non_human_identity_id: Annotated[UUID, Field(description="The resource ID of the non-human identity to remove from this resource.")],
access_level_remote_id: Annotated[Optional[StrictStr], Field(description="The remote ID of the access level for which this non-human identity has direct access. If omitted, the default access level remote ID value (empty string) is assumed.")] = None,
_request_timeout: Union[
None,
@@ -1255,9 +1257,9 @@ def delete_resource_nhi(
Removes a non-human identity's direct access from this resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param non_human_identity_id: The resource ID of the non-human identity to remove from this resource. (required)
- :type non_human_identity_id: str
+ :type non_human_identity_id: UUID
:param access_level_remote_id: The remote ID of the access level for which this non-human identity has direct access. If omitted, the default access level remote ID value (empty string) is assumed.
:type access_level_remote_id: str
:param _request_timeout: timeout setting for this request. If one
@@ -1309,8 +1311,8 @@ def delete_resource_nhi(
@validate_call
def delete_resource_nhi_with_http_info(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
- non_human_identity_id: Annotated[StrictStr, Field(description="The resource ID of the non-human identity to remove from this resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
+ non_human_identity_id: Annotated[UUID, Field(description="The resource ID of the non-human identity to remove from this resource.")],
access_level_remote_id: Annotated[Optional[StrictStr], Field(description="The remote ID of the access level for which this non-human identity has direct access. If omitted, the default access level remote ID value (empty string) is assumed.")] = None,
_request_timeout: Union[
None,
@@ -1330,9 +1332,9 @@ def delete_resource_nhi_with_http_info(
Removes a non-human identity's direct access from this resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param non_human_identity_id: The resource ID of the non-human identity to remove from this resource. (required)
- :type non_human_identity_id: str
+ :type non_human_identity_id: UUID
:param access_level_remote_id: The remote ID of the access level for which this non-human identity has direct access. If omitted, the default access level remote ID value (empty string) is assumed.
:type access_level_remote_id: str
:param _request_timeout: timeout setting for this request. If one
@@ -1384,8 +1386,8 @@ def delete_resource_nhi_with_http_info(
@validate_call
def delete_resource_nhi_without_preload_content(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
- non_human_identity_id: Annotated[StrictStr, Field(description="The resource ID of the non-human identity to remove from this resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
+ non_human_identity_id: Annotated[UUID, Field(description="The resource ID of the non-human identity to remove from this resource.")],
access_level_remote_id: Annotated[Optional[StrictStr], Field(description="The remote ID of the access level for which this non-human identity has direct access. If omitted, the default access level remote ID value (empty string) is assumed.")] = None,
_request_timeout: Union[
None,
@@ -1405,9 +1407,9 @@ def delete_resource_nhi_without_preload_content(
Removes a non-human identity's direct access from this resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param non_human_identity_id: The resource ID of the non-human identity to remove from this resource. (required)
- :type non_human_identity_id: str
+ :type non_human_identity_id: UUID
:param access_level_remote_id: The remote ID of the access level for which this non-human identity has direct access. If omitted, the default access level remote ID value (empty string) is assumed.
:type access_level_remote_id: str
:param _request_timeout: timeout setting for this request. If one
@@ -1520,8 +1522,8 @@ def _delete_resource_nhi_serialize(
@validate_call
def delete_resource_user(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
- user_id: Annotated[StrictStr, Field(description="The ID of a user to remove from this resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
+ user_id: Annotated[UUID, Field(description="The ID of a user to remove from this resource.")],
access_level_remote_id: Annotated[Optional[StrictStr], Field(description="The remote ID of the access level for which this user has direct access. If omitted, the default access level remote ID value (empty string) is assumed.")] = None,
_request_timeout: Union[
None,
@@ -1541,9 +1543,9 @@ def delete_resource_user(
Removes a user's direct access from this resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param user_id: The ID of a user to remove from this resource. (required)
- :type user_id: str
+ :type user_id: UUID
:param access_level_remote_id: The remote ID of the access level for which this user has direct access. If omitted, the default access level remote ID value (empty string) is assumed.
:type access_level_remote_id: str
:param _request_timeout: timeout setting for this request. If one
@@ -1595,8 +1597,8 @@ def delete_resource_user(
@validate_call
def delete_resource_user_with_http_info(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
- user_id: Annotated[StrictStr, Field(description="The ID of a user to remove from this resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
+ user_id: Annotated[UUID, Field(description="The ID of a user to remove from this resource.")],
access_level_remote_id: Annotated[Optional[StrictStr], Field(description="The remote ID of the access level for which this user has direct access. If omitted, the default access level remote ID value (empty string) is assumed.")] = None,
_request_timeout: Union[
None,
@@ -1616,9 +1618,9 @@ def delete_resource_user_with_http_info(
Removes a user's direct access from this resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param user_id: The ID of a user to remove from this resource. (required)
- :type user_id: str
+ :type user_id: UUID
:param access_level_remote_id: The remote ID of the access level for which this user has direct access. If omitted, the default access level remote ID value (empty string) is assumed.
:type access_level_remote_id: str
:param _request_timeout: timeout setting for this request. If one
@@ -1670,8 +1672,8 @@ def delete_resource_user_with_http_info(
@validate_call
def delete_resource_user_without_preload_content(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
- user_id: Annotated[StrictStr, Field(description="The ID of a user to remove from this resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
+ user_id: Annotated[UUID, Field(description="The ID of a user to remove from this resource.")],
access_level_remote_id: Annotated[Optional[StrictStr], Field(description="The remote ID of the access level for which this user has direct access. If omitted, the default access level remote ID value (empty string) is assumed.")] = None,
_request_timeout: Union[
None,
@@ -1691,9 +1693,9 @@ def delete_resource_user_without_preload_content(
Removes a user's direct access from this resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param user_id: The ID of a user to remove from this resource. (required)
- :type user_id: str
+ :type user_id: UUID
:param access_level_remote_id: The remote ID of the access level for which this user has direct access. If omitted, the default access level remote ID value (empty string) is assumed.
:type access_level_remote_id: str
:param _request_timeout: timeout setting for this request. If one
@@ -1806,7 +1808,7 @@ def _delete_resource_user_serialize(
@validate_call
def get_resource(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1825,7 +1827,7 @@ def get_resource(
Retrieves a resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1873,7 +1875,7 @@ def get_resource(
@validate_call
def get_resource_with_http_info(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1892,7 +1894,7 @@ def get_resource_with_http_info(
Retrieves a resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1940,7 +1942,7 @@ def get_resource_with_http_info(
@validate_call
def get_resource_without_preload_content(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1959,7 +1961,7 @@ def get_resource_without_preload_content(
Retrieves a resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2064,10 +2066,271 @@ def _get_resource_serialize(
+ @validate_call
+ def get_resource_groups(
+ self,
+ resource_id: Annotated[UUID, Field(description="The ID of the resource that the groups grant access to.")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> GroupResourceList:
+ """get_resource_groups
+
+ Returns a list of groups that grant access to the resource
+
+ :param resource_id: The ID of the resource that the groups grant access to. (required)
+ :type resource_id: UUID
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_resource_groups_serialize(
+ resource_id=resource_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "GroupResourceList",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ ).data
+
+
+ @validate_call
+ def get_resource_groups_with_http_info(
+ self,
+ resource_id: Annotated[UUID, Field(description="The ID of the resource that the groups grant access to.")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> ApiResponse[GroupResourceList]:
+ """get_resource_groups
+
+ Returns a list of groups that grant access to the resource
+
+ :param resource_id: The ID of the resource that the groups grant access to. (required)
+ :type resource_id: UUID
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_resource_groups_serialize(
+ resource_id=resource_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "GroupResourceList",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ response_data.read()
+ return self.api_client.response_deserialize(
+ response_data=response_data,
+ response_types_map=_response_types_map,
+ )
+
+
+ @validate_call
+ def get_resource_groups_without_preload_content(
+ self,
+ resource_id: Annotated[UUID, Field(description="The ID of the resource that the groups grant access to.")],
+ _request_timeout: Union[
+ None,
+ Annotated[StrictFloat, Field(gt=0)],
+ Tuple[
+ Annotated[StrictFloat, Field(gt=0)],
+ Annotated[StrictFloat, Field(gt=0)]
+ ]
+ ] = None,
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
+ _content_type: Optional[StrictStr] = None,
+ _headers: Optional[Dict[StrictStr, Any]] = None,
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
+ ) -> RESTResponseType:
+ """get_resource_groups
+
+ Returns a list of groups that grant access to the resource
+
+ :param resource_id: The ID of the resource that the groups grant access to. (required)
+ :type resource_id: UUID
+ :param _request_timeout: timeout setting for this request. If one
+ number provided, it will be total request
+ timeout. It can also be a pair (tuple) of
+ (connection, read) timeouts.
+ :type _request_timeout: int, tuple(int, int), optional
+ :param _request_auth: set to override the auth_settings for an a single
+ request; this effectively ignores the
+ authentication in the spec for a single request.
+ :type _request_auth: dict, optional
+ :param _content_type: force content-type for the request.
+ :type _content_type: str, Optional
+ :param _headers: set to override the headers for a single
+ request; this effectively ignores the headers
+ in the spec for a single request.
+ :type _headers: dict, optional
+ :param _host_index: set to override the host_index for a single
+ request; this effectively ignores the host_index
+ in the spec for a single request.
+ :type _host_index: int, optional
+ :return: Returns the result object.
+ """ # noqa: E501
+
+ _param = self._get_resource_groups_serialize(
+ resource_id=resource_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "GroupResourceList",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_resource_groups_serialize(
+ self,
+ resource_id,
+ _request_auth,
+ _content_type,
+ _headers,
+ _host_index,
+ ) -> RequestSerialized:
+
+ _host = None
+
+ _collection_formats: Dict[str, str] = {
+ }
+
+ _path_params: Dict[str, str] = {}
+ _query_params: List[Tuple[str, str]] = []
+ _header_params: Dict[str, Optional[str]] = _headers or {}
+ _form_params: List[Tuple[str, str]] = []
+ _files: Dict[
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
+ ] = {}
+ _body_params: Optional[bytes] = None
+
+ # process the path parameters
+ if resource_id is not None:
+ _path_params['resource_id'] = resource_id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'BearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/resources/{resource_id}/groups',
+ path_params=_path_params,
+ query_params=_query_params,
+ header_params=_header_params,
+ body=_body_params,
+ post_params=_form_params,
+ files=_files,
+ auth_settings=_auth_settings,
+ collection_formats=_collection_formats,
+ _host=_host,
+ _request_auth=_request_auth
+ )
+
+
+
+
@validate_call
def get_resource_message_channels(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2086,7 +2349,7 @@ def get_resource_message_channels(
Gets the list of audit message channels attached to a resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2134,7 +2397,7 @@ def get_resource_message_channels(
@validate_call
def get_resource_message_channels_with_http_info(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2153,7 +2416,7 @@ def get_resource_message_channels_with_http_info(
Gets the list of audit message channels attached to a resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2201,7 +2464,7 @@ def get_resource_message_channels_with_http_info(
@validate_call
def get_resource_message_channels_without_preload_content(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2220,7 +2483,7 @@ def get_resource_message_channels_without_preload_content(
Gets the list of audit message channels attached to a resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2328,7 +2591,7 @@ def _get_resource_message_channels_serialize(
@validate_call
def get_resource_nhis(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
limit: Annotated[Optional[StrictInt], Field(description="Limit the number of results returned.")] = None,
_request_timeout: Union[
None,
@@ -2348,7 +2611,7 @@ def get_resource_nhis(
Gets the list of non-human identities with access to this resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param limit: Limit the number of results returned.
:type limit: int
:param _request_timeout: timeout setting for this request. If one
@@ -2399,7 +2662,7 @@ def get_resource_nhis(
@validate_call
def get_resource_nhis_with_http_info(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
limit: Annotated[Optional[StrictInt], Field(description="Limit the number of results returned.")] = None,
_request_timeout: Union[
None,
@@ -2419,7 +2682,7 @@ def get_resource_nhis_with_http_info(
Gets the list of non-human identities with access to this resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param limit: Limit the number of results returned.
:type limit: int
:param _request_timeout: timeout setting for this request. If one
@@ -2470,7 +2733,7 @@ def get_resource_nhis_with_http_info(
@validate_call
def get_resource_nhis_without_preload_content(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
limit: Annotated[Optional[StrictInt], Field(description="Limit the number of results returned.")] = None,
_request_timeout: Union[
None,
@@ -2490,7 +2753,7 @@ def get_resource_nhis_without_preload_content(
Gets the list of non-human identities with access to this resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param limit: Limit the number of results returned.
:type limit: int
:param _request_timeout: timeout setting for this request. If one
@@ -2606,7 +2869,7 @@ def _get_resource_nhis_serialize(
@validate_call
def get_resource_reviewer_stages(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2625,7 +2888,7 @@ def get_resource_reviewer_stages(
Gets the list reviewer stages for a resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2673,7 +2936,7 @@ def get_resource_reviewer_stages(
@validate_call
def get_resource_reviewer_stages_with_http_info(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2692,7 +2955,7 @@ def get_resource_reviewer_stages_with_http_info(
Gets the list reviewer stages for a resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2740,7 +3003,7 @@ def get_resource_reviewer_stages_with_http_info(
@validate_call
def get_resource_reviewer_stages_without_preload_content(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2759,7 +3022,7 @@ def get_resource_reviewer_stages_without_preload_content(
Gets the list reviewer stages for a resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2867,7 +3130,7 @@ def _get_resource_reviewer_stages_serialize(
@validate_call
def get_resource_reviewers(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2880,13 +3143,13 @@ def get_resource_reviewers(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> List[str]:
+ ) -> List[UUID]:
"""get_resource_reviewers
Gets the list of owner IDs of the reviewers for a resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2918,7 +3181,7 @@ def get_resource_reviewers(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "List[str]",
+ '200': "List[UUID]",
}
response_data = self.api_client.call_api(
*_param,
@@ -2934,7 +3197,7 @@ def get_resource_reviewers(
@validate_call
def get_resource_reviewers_with_http_info(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2947,13 +3210,13 @@ def get_resource_reviewers_with_http_info(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> ApiResponse[List[str]]:
+ ) -> ApiResponse[List[UUID]]:
"""get_resource_reviewers
Gets the list of owner IDs of the reviewers for a resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2985,7 +3248,7 @@ def get_resource_reviewers_with_http_info(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "List[str]",
+ '200': "List[UUID]",
}
response_data = self.api_client.call_api(
*_param,
@@ -3001,7 +3264,7 @@ def get_resource_reviewers_with_http_info(
@validate_call
def get_resource_reviewers_without_preload_content(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -3020,7 +3283,7 @@ def get_resource_reviewers_without_preload_content(
Gets the list of owner IDs of the reviewers for a resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -3052,7 +3315,7 @@ def get_resource_reviewers_without_preload_content(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "List[str]",
+ '200': "List[UUID]",
}
response_data = self.api_client.call_api(
*_param,
@@ -3128,7 +3391,7 @@ def _get_resource_reviewers_serialize(
@validate_call
def get_resource_scoped_role_permissions(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource whose scoped role permissions belong to.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource whose scoped role permissions belong to.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -3147,7 +3410,7 @@ def get_resource_scoped_role_permissions(
Returns all the scoped role permissions that apply to the given resource. Only OPAL_SCOPED_ROLE resource type supports this field.
:param resource_id: The ID of the resource whose scoped role permissions belong to. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -3195,7 +3458,7 @@ def get_resource_scoped_role_permissions(
@validate_call
def get_resource_scoped_role_permissions_with_http_info(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource whose scoped role permissions belong to.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource whose scoped role permissions belong to.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -3214,7 +3477,7 @@ def get_resource_scoped_role_permissions_with_http_info(
Returns all the scoped role permissions that apply to the given resource. Only OPAL_SCOPED_ROLE resource type supports this field.
:param resource_id: The ID of the resource whose scoped role permissions belong to. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -3262,7 +3525,7 @@ def get_resource_scoped_role_permissions_with_http_info(
@validate_call
def get_resource_scoped_role_permissions_without_preload_content(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource whose scoped role permissions belong to.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource whose scoped role permissions belong to.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -3281,7 +3544,7 @@ def get_resource_scoped_role_permissions_without_preload_content(
Returns all the scoped role permissions that apply to the given resource. Only OPAL_SCOPED_ROLE resource type supports this field.
:param resource_id: The ID of the resource whose scoped role permissions belong to. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -3389,7 +3652,7 @@ def _get_resource_scoped_role_permissions_serialize(
@validate_call
def get_resource_tags(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource whose tags to return.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource whose tags to return.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -3408,7 +3671,7 @@ def get_resource_tags(
Returns all tags applied to the resource.
:param resource_id: The ID of the resource whose tags to return. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -3456,7 +3719,7 @@ def get_resource_tags(
@validate_call
def get_resource_tags_with_http_info(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource whose tags to return.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource whose tags to return.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -3475,7 +3738,7 @@ def get_resource_tags_with_http_info(
Returns all tags applied to the resource.
:param resource_id: The ID of the resource whose tags to return. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -3523,7 +3786,7 @@ def get_resource_tags_with_http_info(
@validate_call
def get_resource_tags_without_preload_content(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource whose tags to return.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource whose tags to return.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -3542,7 +3805,7 @@ def get_resource_tags_without_preload_content(
Returns all tags applied to the resource.
:param resource_id: The ID of the resource whose tags to return. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -3650,8 +3913,8 @@ def _get_resource_tags_serialize(
@validate_call
def get_resource_user(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
- user_id: Annotated[StrictStr, Field(description="The ID of the user.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user.")],
cursor: Annotated[Optional[StrictStr], Field(description="The pagination cursor value.")] = None,
_request_timeout: Union[
None,
@@ -3671,9 +3934,9 @@ def get_resource_user(
Returns information about a specific user's access to a resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param user_id: The ID of the user. (required)
- :type user_id: str
+ :type user_id: UUID
:param cursor: The pagination cursor value.
:type cursor: str
:param _request_timeout: timeout setting for this request. If one
@@ -3726,8 +3989,8 @@ def get_resource_user(
@validate_call
def get_resource_user_with_http_info(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
- user_id: Annotated[StrictStr, Field(description="The ID of the user.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user.")],
cursor: Annotated[Optional[StrictStr], Field(description="The pagination cursor value.")] = None,
_request_timeout: Union[
None,
@@ -3747,9 +4010,9 @@ def get_resource_user_with_http_info(
Returns information about a specific user's access to a resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param user_id: The ID of the user. (required)
- :type user_id: str
+ :type user_id: UUID
:param cursor: The pagination cursor value.
:type cursor: str
:param _request_timeout: timeout setting for this request. If one
@@ -3802,8 +4065,8 @@ def get_resource_user_with_http_info(
@validate_call
def get_resource_user_without_preload_content(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
- user_id: Annotated[StrictStr, Field(description="The ID of the user.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user.")],
cursor: Annotated[Optional[StrictStr], Field(description="The pagination cursor value.")] = None,
_request_timeout: Union[
None,
@@ -3823,9 +4086,9 @@ def get_resource_user_without_preload_content(
Returns information about a specific user's access to a resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param user_id: The ID of the user. (required)
- :type user_id: str
+ :type user_id: UUID
:param cursor: The pagination cursor value.
:type cursor: str
:param _request_timeout: timeout setting for this request. If one
@@ -3946,7 +4209,7 @@ def _get_resource_user_serialize(
@validate_call
def get_resource_users(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
limit: Annotated[Optional[StrictInt], Field(description="Limit the number of results returned.")] = None,
_request_timeout: Union[
None,
@@ -3966,7 +4229,7 @@ def get_resource_users(
Gets the list of users for this resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param limit: Limit the number of results returned.
:type limit: int
:param _request_timeout: timeout setting for this request. If one
@@ -4017,7 +4280,7 @@ def get_resource_users(
@validate_call
def get_resource_users_with_http_info(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
limit: Annotated[Optional[StrictInt], Field(description="Limit the number of results returned.")] = None,
_request_timeout: Union[
None,
@@ -4037,7 +4300,7 @@ def get_resource_users_with_http_info(
Gets the list of users for this resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param limit: Limit the number of results returned.
:type limit: int
:param _request_timeout: timeout setting for this request. If one
@@ -4088,7 +4351,7 @@ def get_resource_users_with_http_info(
@validate_call
def get_resource_users_without_preload_content(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
limit: Annotated[Optional[StrictInt], Field(description="Limit the number of results returned.")] = None,
_request_timeout: Union[
None,
@@ -4108,7 +4371,7 @@ def get_resource_users_without_preload_content(
Gets the list of users for this resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param limit: Limit the number of results returned.
:type limit: int
:param _request_timeout: timeout setting for this request. If one
@@ -4224,7 +4487,7 @@ def _get_resource_users_serialize(
@validate_call
def get_resource_visibility(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -4243,7 +4506,7 @@ def get_resource_visibility(
Gets the visibility of this resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -4291,7 +4554,7 @@ def get_resource_visibility(
@validate_call
def get_resource_visibility_with_http_info(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -4310,7 +4573,7 @@ def get_resource_visibility_with_http_info(
Gets the visibility of this resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -4358,7 +4621,7 @@ def get_resource_visibility_with_http_info(
@validate_call
def get_resource_visibility_without_preload_content(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -4377,7 +4640,7 @@ def get_resource_visibility_without_preload_content(
Gets the visibility of this resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -4488,10 +4751,10 @@ def get_resources(
cursor: Annotated[Optional[StrictStr], Field(description="The pagination cursor value.")] = None,
page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True)]], Field(description="Number of results to return per page. Default is 200.")] = None,
resource_type_filter: Annotated[Optional[ResourceTypeEnum], Field(description="The resource type to filter by. Required when remote_id is provided.")] = None,
- resource_ids: Annotated[Optional[List[StrictStr]], Field(description="The resource ids to filter by.")] = None,
+ resource_ids: Annotated[Optional[List[UUID]], Field(description="The resource ids to filter by.")] = None,
resource_name: Annotated[Optional[StrictStr], Field(description="Resource name.")] = None,
- parent_resource_id: Annotated[Optional[StrictStr], Field(description="The parent resource id to filter by.")] = None,
- ancestor_resource_id: Annotated[Optional[StrictStr], Field(description="The ancestor resource id to filter by. Returns all resources that are descendants of the specified resource.")] = None,
+ parent_resource_id: Annotated[Optional[UUID], Field(description="The parent resource id to filter by.")] = None,
+ ancestor_resource_id: Annotated[Optional[UUID], Field(description="The ancestor resource id to filter by. Returns all resources that are descendants of the specified resource.")] = None,
remote_id: Annotated[Optional[StrictStr], Field(description="Filter resources by their remote id. This will return all resources that have a remote id that matches the provided remote id. Note that this requires resource_type_filter to be provided.")] = None,
_request_timeout: Union[
None,
@@ -4517,13 +4780,13 @@ def get_resources(
:param resource_type_filter: The resource type to filter by. Required when remote_id is provided.
:type resource_type_filter: ResourceTypeEnum
:param resource_ids: The resource ids to filter by.
- :type resource_ids: List[str]
+ :type resource_ids: List[UUID]
:param resource_name: Resource name.
:type resource_name: str
:param parent_resource_id: The parent resource id to filter by.
- :type parent_resource_id: str
+ :type parent_resource_id: UUID
:param ancestor_resource_id: The ancestor resource id to filter by. Returns all resources that are descendants of the specified resource.
- :type ancestor_resource_id: str
+ :type ancestor_resource_id: UUID
:param remote_id: Filter resources by their remote id. This will return all resources that have a remote id that matches the provided remote id. Note that this requires resource_type_filter to be provided.
:type remote_id: str
:param _request_timeout: timeout setting for this request. If one
@@ -4583,10 +4846,10 @@ def get_resources_with_http_info(
cursor: Annotated[Optional[StrictStr], Field(description="The pagination cursor value.")] = None,
page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True)]], Field(description="Number of results to return per page. Default is 200.")] = None,
resource_type_filter: Annotated[Optional[ResourceTypeEnum], Field(description="The resource type to filter by. Required when remote_id is provided.")] = None,
- resource_ids: Annotated[Optional[List[StrictStr]], Field(description="The resource ids to filter by.")] = None,
+ resource_ids: Annotated[Optional[List[UUID]], Field(description="The resource ids to filter by.")] = None,
resource_name: Annotated[Optional[StrictStr], Field(description="Resource name.")] = None,
- parent_resource_id: Annotated[Optional[StrictStr], Field(description="The parent resource id to filter by.")] = None,
- ancestor_resource_id: Annotated[Optional[StrictStr], Field(description="The ancestor resource id to filter by. Returns all resources that are descendants of the specified resource.")] = None,
+ parent_resource_id: Annotated[Optional[UUID], Field(description="The parent resource id to filter by.")] = None,
+ ancestor_resource_id: Annotated[Optional[UUID], Field(description="The ancestor resource id to filter by. Returns all resources that are descendants of the specified resource.")] = None,
remote_id: Annotated[Optional[StrictStr], Field(description="Filter resources by their remote id. This will return all resources that have a remote id that matches the provided remote id. Note that this requires resource_type_filter to be provided.")] = None,
_request_timeout: Union[
None,
@@ -4612,13 +4875,13 @@ def get_resources_with_http_info(
:param resource_type_filter: The resource type to filter by. Required when remote_id is provided.
:type resource_type_filter: ResourceTypeEnum
:param resource_ids: The resource ids to filter by.
- :type resource_ids: List[str]
+ :type resource_ids: List[UUID]
:param resource_name: Resource name.
:type resource_name: str
:param parent_resource_id: The parent resource id to filter by.
- :type parent_resource_id: str
+ :type parent_resource_id: UUID
:param ancestor_resource_id: The ancestor resource id to filter by. Returns all resources that are descendants of the specified resource.
- :type ancestor_resource_id: str
+ :type ancestor_resource_id: UUID
:param remote_id: Filter resources by their remote id. This will return all resources that have a remote id that matches the provided remote id. Note that this requires resource_type_filter to be provided.
:type remote_id: str
:param _request_timeout: timeout setting for this request. If one
@@ -4678,10 +4941,10 @@ def get_resources_without_preload_content(
cursor: Annotated[Optional[StrictStr], Field(description="The pagination cursor value.")] = None,
page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True)]], Field(description="Number of results to return per page. Default is 200.")] = None,
resource_type_filter: Annotated[Optional[ResourceTypeEnum], Field(description="The resource type to filter by. Required when remote_id is provided.")] = None,
- resource_ids: Annotated[Optional[List[StrictStr]], Field(description="The resource ids to filter by.")] = None,
+ resource_ids: Annotated[Optional[List[UUID]], Field(description="The resource ids to filter by.")] = None,
resource_name: Annotated[Optional[StrictStr], Field(description="Resource name.")] = None,
- parent_resource_id: Annotated[Optional[StrictStr], Field(description="The parent resource id to filter by.")] = None,
- ancestor_resource_id: Annotated[Optional[StrictStr], Field(description="The ancestor resource id to filter by. Returns all resources that are descendants of the specified resource.")] = None,
+ parent_resource_id: Annotated[Optional[UUID], Field(description="The parent resource id to filter by.")] = None,
+ ancestor_resource_id: Annotated[Optional[UUID], Field(description="The ancestor resource id to filter by. Returns all resources that are descendants of the specified resource.")] = None,
remote_id: Annotated[Optional[StrictStr], Field(description="Filter resources by their remote id. This will return all resources that have a remote id that matches the provided remote id. Note that this requires resource_type_filter to be provided.")] = None,
_request_timeout: Union[
None,
@@ -4707,13 +4970,13 @@ def get_resources_without_preload_content(
:param resource_type_filter: The resource type to filter by. Required when remote_id is provided.
:type resource_type_filter: ResourceTypeEnum
:param resource_ids: The resource ids to filter by.
- :type resource_ids: List[str]
+ :type resource_ids: List[UUID]
:param resource_name: Resource name.
:type resource_name: str
:param parent_resource_id: The parent resource id to filter by.
- :type parent_resource_id: str
+ :type parent_resource_id: UUID
:param ancestor_resource_id: The ancestor resource id to filter by. Returns all resources that are descendants of the specified resource.
- :type ancestor_resource_id: str
+ :type ancestor_resource_id: UUID
:param remote_id: Filter resources by their remote id. This will return all resources that have a remote id that matches the provided remote id. Note that this requires resource_type_filter to be provided.
:type remote_id: str
:param _request_timeout: timeout setting for this request. If one
@@ -4868,7 +5131,7 @@ def _get_resources_serialize(
@validate_call
def get_user_resources(
self,
- user_id: Annotated[StrictStr, Field(description="The ID of the user.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user.")],
limit: Annotated[Optional[StrictInt], Field(description="Limit the number of results returned.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="The pagination cursor value.")] = None,
include_unmanaged: Annotated[Optional[StrictBool], Field(description="Include user's access to unmanaged resources.")] = None,
@@ -4890,7 +5153,7 @@ def get_user_resources(
Gets the list of resources for this user.
:param user_id: The ID of the user. (required)
- :type user_id: str
+ :type user_id: UUID
:param limit: Limit the number of results returned.
:type limit: int
:param cursor: The pagination cursor value.
@@ -4947,7 +5210,7 @@ def get_user_resources(
@validate_call
def get_user_resources_with_http_info(
self,
- user_id: Annotated[StrictStr, Field(description="The ID of the user.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user.")],
limit: Annotated[Optional[StrictInt], Field(description="Limit the number of results returned.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="The pagination cursor value.")] = None,
include_unmanaged: Annotated[Optional[StrictBool], Field(description="Include user's access to unmanaged resources.")] = None,
@@ -4969,7 +5232,7 @@ def get_user_resources_with_http_info(
Gets the list of resources for this user.
:param user_id: The ID of the user. (required)
- :type user_id: str
+ :type user_id: UUID
:param limit: Limit the number of results returned.
:type limit: int
:param cursor: The pagination cursor value.
@@ -5026,7 +5289,7 @@ def get_user_resources_with_http_info(
@validate_call
def get_user_resources_without_preload_content(
self,
- user_id: Annotated[StrictStr, Field(description="The ID of the user.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user.")],
limit: Annotated[Optional[StrictInt], Field(description="Limit the number of results returned.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="The pagination cursor value.")] = None,
include_unmanaged: Annotated[Optional[StrictBool], Field(description="Include user's access to unmanaged resources.")] = None,
@@ -5048,7 +5311,7 @@ def get_user_resources_without_preload_content(
Gets the list of resources for this user.
:param user_id: The ID of the user. (required)
- :type user_id: str
+ :type user_id: UUID
:param limit: Limit the number of results returned.
:type limit: int
:param cursor: The pagination cursor value.
@@ -5180,8 +5443,8 @@ def _get_user_resources_serialize(
@validate_call
def resource_user_access_status_retrieve(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
- user_id: Annotated[StrictStr, Field(description="The ID of the user.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user.")],
access_level_remote_id: Annotated[Optional[StrictStr], Field(description="The remote ID of the access level that you wish to query for the resource. If omitted, the default access level remote ID value (empty string) is used.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="The pagination cursor value.")] = None,
page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True)]], Field(description="Number of results to return per page. Default is 200.")] = None,
@@ -5203,9 +5466,9 @@ def resource_user_access_status_retrieve(
Get user's access status to a resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param user_id: The ID of the user. (required)
- :type user_id: str
+ :type user_id: UUID
:param access_level_remote_id: The remote ID of the access level that you wish to query for the resource. If omitted, the default access level remote ID value (empty string) is used.
:type access_level_remote_id: str
:param cursor: The pagination cursor value.
@@ -5264,8 +5527,8 @@ def resource_user_access_status_retrieve(
@validate_call
def resource_user_access_status_retrieve_with_http_info(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
- user_id: Annotated[StrictStr, Field(description="The ID of the user.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user.")],
access_level_remote_id: Annotated[Optional[StrictStr], Field(description="The remote ID of the access level that you wish to query for the resource. If omitted, the default access level remote ID value (empty string) is used.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="The pagination cursor value.")] = None,
page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True)]], Field(description="Number of results to return per page. Default is 200.")] = None,
@@ -5287,9 +5550,9 @@ def resource_user_access_status_retrieve_with_http_info(
Get user's access status to a resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param user_id: The ID of the user. (required)
- :type user_id: str
+ :type user_id: UUID
:param access_level_remote_id: The remote ID of the access level that you wish to query for the resource. If omitted, the default access level remote ID value (empty string) is used.
:type access_level_remote_id: str
:param cursor: The pagination cursor value.
@@ -5348,8 +5611,8 @@ def resource_user_access_status_retrieve_with_http_info(
@validate_call
def resource_user_access_status_retrieve_without_preload_content(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
- user_id: Annotated[StrictStr, Field(description="The ID of the user.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user.")],
access_level_remote_id: Annotated[Optional[StrictStr], Field(description="The remote ID of the access level that you wish to query for the resource. If omitted, the default access level remote ID value (empty string) is used.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="The pagination cursor value.")] = None,
page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True)]], Field(description="Number of results to return per page. Default is 200.")] = None,
@@ -5371,9 +5634,9 @@ def resource_user_access_status_retrieve_without_preload_content(
Get user's access status to a resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param user_id: The ID of the user. (required)
- :type user_id: str
+ :type user_id: UUID
:param access_level_remote_id: The remote ID of the access level that you wish to query for the resource. If omitted, the default access level remote ID value (empty string) is used.
:type access_level_remote_id: str
:param cursor: The pagination cursor value.
@@ -5510,7 +5773,7 @@ def _resource_user_access_status_retrieve_serialize(
@validate_call
def set_resource_message_channels(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
message_channel_id_list: MessageChannelIDList,
_request_timeout: Union[
None,
@@ -5524,13 +5787,13 @@ def set_resource_message_channels(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> List[str]:
+ ) -> List[UUID]:
"""set_resource_message_channels
Sets the list of audit message channels attached to a resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param message_channel_id_list: (required)
:type message_channel_id_list: MessageChannelIDList
:param _request_timeout: timeout setting for this request. If one
@@ -5565,7 +5828,7 @@ def set_resource_message_channels(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "List[str]",
+ '200': "List[UUID]",
}
response_data = self.api_client.call_api(
*_param,
@@ -5581,7 +5844,7 @@ def set_resource_message_channels(
@validate_call
def set_resource_message_channels_with_http_info(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
message_channel_id_list: MessageChannelIDList,
_request_timeout: Union[
None,
@@ -5595,13 +5858,13 @@ def set_resource_message_channels_with_http_info(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> ApiResponse[List[str]]:
+ ) -> ApiResponse[List[UUID]]:
"""set_resource_message_channels
Sets the list of audit message channels attached to a resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param message_channel_id_list: (required)
:type message_channel_id_list: MessageChannelIDList
:param _request_timeout: timeout setting for this request. If one
@@ -5636,7 +5899,7 @@ def set_resource_message_channels_with_http_info(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "List[str]",
+ '200': "List[UUID]",
}
response_data = self.api_client.call_api(
*_param,
@@ -5652,7 +5915,7 @@ def set_resource_message_channels_with_http_info(
@validate_call
def set_resource_message_channels_without_preload_content(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
message_channel_id_list: MessageChannelIDList,
_request_timeout: Union[
None,
@@ -5672,7 +5935,7 @@ def set_resource_message_channels_without_preload_content(
Sets the list of audit message channels attached to a resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param message_channel_id_list: (required)
:type message_channel_id_list: MessageChannelIDList
:param _request_timeout: timeout setting for this request. If one
@@ -5707,7 +5970,7 @@ def set_resource_message_channels_without_preload_content(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "List[str]",
+ '200': "List[UUID]",
}
response_data = self.api_client.call_api(
*_param,
@@ -5799,7 +6062,7 @@ def _set_resource_message_channels_serialize(
@validate_call
def set_resource_reviewer_stages(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
reviewer_stage_list: ReviewerStageList,
_request_timeout: Union[
None,
@@ -5819,7 +6082,7 @@ def set_resource_reviewer_stages(
Sets the list of reviewer stages for a resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param reviewer_stage_list: (required)
:type reviewer_stage_list: ReviewerStageList
:param _request_timeout: timeout setting for this request. If one
@@ -5870,7 +6133,7 @@ def set_resource_reviewer_stages(
@validate_call
def set_resource_reviewer_stages_with_http_info(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
reviewer_stage_list: ReviewerStageList,
_request_timeout: Union[
None,
@@ -5890,7 +6153,7 @@ def set_resource_reviewer_stages_with_http_info(
Sets the list of reviewer stages for a resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param reviewer_stage_list: (required)
:type reviewer_stage_list: ReviewerStageList
:param _request_timeout: timeout setting for this request. If one
@@ -5941,7 +6204,7 @@ def set_resource_reviewer_stages_with_http_info(
@validate_call
def set_resource_reviewer_stages_without_preload_content(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
reviewer_stage_list: ReviewerStageList,
_request_timeout: Union[
None,
@@ -5961,7 +6224,7 @@ def set_resource_reviewer_stages_without_preload_content(
Sets the list of reviewer stages for a resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param reviewer_stage_list: (required)
:type reviewer_stage_list: ReviewerStageList
:param _request_timeout: timeout setting for this request. If one
@@ -6088,7 +6351,7 @@ def _set_resource_reviewer_stages_serialize(
@validate_call
def set_resource_reviewers(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
reviewer_id_list: ReviewerIDList,
_request_timeout: Union[
None,
@@ -6102,13 +6365,13 @@ def set_resource_reviewers(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> List[str]:
+ ) -> List[UUID]:
"""set_resource_reviewers
Sets the list of reviewers for a resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param reviewer_id_list: (required)
:type reviewer_id_list: ReviewerIDList
:param _request_timeout: timeout setting for this request. If one
@@ -6143,7 +6406,7 @@ def set_resource_reviewers(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "List[str]",
+ '200': "List[UUID]",
}
response_data = self.api_client.call_api(
*_param,
@@ -6159,7 +6422,7 @@ def set_resource_reviewers(
@validate_call
def set_resource_reviewers_with_http_info(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
reviewer_id_list: ReviewerIDList,
_request_timeout: Union[
None,
@@ -6173,13 +6436,13 @@ def set_resource_reviewers_with_http_info(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> ApiResponse[List[str]]:
+ ) -> ApiResponse[List[UUID]]:
"""set_resource_reviewers
Sets the list of reviewers for a resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param reviewer_id_list: (required)
:type reviewer_id_list: ReviewerIDList
:param _request_timeout: timeout setting for this request. If one
@@ -6214,7 +6477,7 @@ def set_resource_reviewers_with_http_info(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "List[str]",
+ '200': "List[UUID]",
}
response_data = self.api_client.call_api(
*_param,
@@ -6230,7 +6493,7 @@ def set_resource_reviewers_with_http_info(
@validate_call
def set_resource_reviewers_without_preload_content(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
reviewer_id_list: ReviewerIDList,
_request_timeout: Union[
None,
@@ -6250,7 +6513,7 @@ def set_resource_reviewers_without_preload_content(
Sets the list of reviewers for a resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param reviewer_id_list: (required)
:type reviewer_id_list: ReviewerIDList
:param _request_timeout: timeout setting for this request. If one
@@ -6285,7 +6548,7 @@ def set_resource_reviewers_without_preload_content(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "List[str]",
+ '200': "List[UUID]",
}
response_data = self.api_client.call_api(
*_param,
@@ -6377,7 +6640,7 @@ def _set_resource_reviewers_serialize(
@validate_call
def set_resource_scoped_role_permissions(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource whose scoped role permissions belong to. Must be of OPAL_SCOPED_ROLE resource type.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource whose scoped role permissions belong to. Must be of OPAL_SCOPED_ROLE resource type.")],
scoped_role_permission_list: ScopedRolePermissionList,
_request_timeout: Union[
None,
@@ -6397,7 +6660,7 @@ def set_resource_scoped_role_permissions(
Sets all the scoped role permissions on an OPAL_SCOPED_ROLE resource.
:param resource_id: The ID of the resource whose scoped role permissions belong to. Must be of OPAL_SCOPED_ROLE resource type. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param scoped_role_permission_list: (required)
:type scoped_role_permission_list: ScopedRolePermissionList
:param _request_timeout: timeout setting for this request. If one
@@ -6448,7 +6711,7 @@ def set_resource_scoped_role_permissions(
@validate_call
def set_resource_scoped_role_permissions_with_http_info(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource whose scoped role permissions belong to. Must be of OPAL_SCOPED_ROLE resource type.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource whose scoped role permissions belong to. Must be of OPAL_SCOPED_ROLE resource type.")],
scoped_role_permission_list: ScopedRolePermissionList,
_request_timeout: Union[
None,
@@ -6468,7 +6731,7 @@ def set_resource_scoped_role_permissions_with_http_info(
Sets all the scoped role permissions on an OPAL_SCOPED_ROLE resource.
:param resource_id: The ID of the resource whose scoped role permissions belong to. Must be of OPAL_SCOPED_ROLE resource type. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param scoped_role_permission_list: (required)
:type scoped_role_permission_list: ScopedRolePermissionList
:param _request_timeout: timeout setting for this request. If one
@@ -6519,7 +6782,7 @@ def set_resource_scoped_role_permissions_with_http_info(
@validate_call
def set_resource_scoped_role_permissions_without_preload_content(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource whose scoped role permissions belong to. Must be of OPAL_SCOPED_ROLE resource type.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource whose scoped role permissions belong to. Must be of OPAL_SCOPED_ROLE resource type.")],
scoped_role_permission_list: ScopedRolePermissionList,
_request_timeout: Union[
None,
@@ -6539,7 +6802,7 @@ def set_resource_scoped_role_permissions_without_preload_content(
Sets all the scoped role permissions on an OPAL_SCOPED_ROLE resource.
:param resource_id: The ID of the resource whose scoped role permissions belong to. Must be of OPAL_SCOPED_ROLE resource type. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param scoped_role_permission_list: (required)
:type scoped_role_permission_list: ScopedRolePermissionList
:param _request_timeout: timeout setting for this request. If one
@@ -6666,7 +6929,7 @@ def _set_resource_scoped_role_permissions_serialize(
@validate_call
def set_resource_visibility(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
visibility_info: VisibilityInfo,
_request_timeout: Union[
None,
@@ -6686,7 +6949,7 @@ def set_resource_visibility(
Sets the visibility of this resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param visibility_info: (required)
:type visibility_info: VisibilityInfo
:param _request_timeout: timeout setting for this request. If one
@@ -6737,7 +7000,7 @@ def set_resource_visibility(
@validate_call
def set_resource_visibility_with_http_info(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
visibility_info: VisibilityInfo,
_request_timeout: Union[
None,
@@ -6757,7 +7020,7 @@ def set_resource_visibility_with_http_info(
Sets the visibility of this resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param visibility_info: (required)
:type visibility_info: VisibilityInfo
:param _request_timeout: timeout setting for this request. If one
@@ -6808,7 +7071,7 @@ def set_resource_visibility_with_http_info(
@validate_call
def set_resource_visibility_without_preload_content(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
visibility_info: VisibilityInfo,
_request_timeout: Union[
None,
@@ -6828,7 +7091,7 @@ def set_resource_visibility_without_preload_content(
Sets the visibility of this resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param visibility_info: (required)
:type visibility_info: VisibilityInfo
:param _request_timeout: timeout setting for this request. If one
@@ -6955,8 +7218,8 @@ def _set_resource_visibility_serialize(
@validate_call
def update_resource_user(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
- user_id: Annotated[StrictStr, Field(description="The ID of the user whose access is being updated.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user whose access is being updated.")],
update_resource_user_request: UpdateResourceUserRequest,
_request_timeout: Union[
None,
@@ -6976,9 +7239,9 @@ def update_resource_user(
Updates a user's access level or duration on this resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param user_id: The ID of the user whose access is being updated. (required)
- :type user_id: str
+ :type user_id: UUID
:param update_resource_user_request: (required)
:type update_resource_user_request: UpdateResourceUserRequest
:param _request_timeout: timeout setting for this request. If one
@@ -7030,8 +7293,8 @@ def update_resource_user(
@validate_call
def update_resource_user_with_http_info(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
- user_id: Annotated[StrictStr, Field(description="The ID of the user whose access is being updated.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user whose access is being updated.")],
update_resource_user_request: UpdateResourceUserRequest,
_request_timeout: Union[
None,
@@ -7051,9 +7314,9 @@ def update_resource_user_with_http_info(
Updates a user's access level or duration on this resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param user_id: The ID of the user whose access is being updated. (required)
- :type user_id: str
+ :type user_id: UUID
:param update_resource_user_request: (required)
:type update_resource_user_request: UpdateResourceUserRequest
:param _request_timeout: timeout setting for this request. If one
@@ -7105,8 +7368,8 @@ def update_resource_user_with_http_info(
@validate_call
def update_resource_user_without_preload_content(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
- user_id: Annotated[StrictStr, Field(description="The ID of the user whose access is being updated.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user whose access is being updated.")],
update_resource_user_request: UpdateResourceUserRequest,
_request_timeout: Union[
None,
@@ -7126,9 +7389,9 @@ def update_resource_user_without_preload_content(
Updates a user's access level or duration on this resource.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param user_id: The ID of the user whose access is being updated. (required)
- :type user_id: str
+ :type user_id: UUID
:param update_resource_user_request: (required)
:type update_resource_user_request: UpdateResourceUserRequest
:param _request_timeout: timeout setting for this request. If one
diff --git a/opal_security/api/sessions_api.py b/opal_security/api/sessions_api.py
index 76680bb..303a59a 100644
--- a/opal_security/api/sessions_api.py
+++ b/opal_security/api/sessions_api.py
@@ -20,6 +20,7 @@
from pydantic import Field, StrictStr
from typing import Optional
from typing_extensions import Annotated
+from uuid import UUID
from opal_security.models.sessions_list import SessionsList
from opal_security.api_client import ApiClient, RequestSerialized
@@ -43,7 +44,7 @@ def __init__(self, api_client=None) -> None:
@validate_call
def sessions(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
user_id: Annotated[Optional[StrictStr], Field(description="The ID of the user you wish to query sessions for.")] = None,
_request_timeout: Union[
None,
@@ -63,7 +64,7 @@ def sessions(
Returns a list of `Session` objects.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param user_id: The ID of the user you wish to query sessions for.
:type user_id: str
:param _request_timeout: timeout setting for this request. If one
@@ -114,7 +115,7 @@ def sessions(
@validate_call
def sessions_with_http_info(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
user_id: Annotated[Optional[StrictStr], Field(description="The ID of the user you wish to query sessions for.")] = None,
_request_timeout: Union[
None,
@@ -134,7 +135,7 @@ def sessions_with_http_info(
Returns a list of `Session` objects.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param user_id: The ID of the user you wish to query sessions for.
:type user_id: str
:param _request_timeout: timeout setting for this request. If one
@@ -185,7 +186,7 @@ def sessions_with_http_info(
@validate_call
def sessions_without_preload_content(
self,
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource.")],
user_id: Annotated[Optional[StrictStr], Field(description="The ID of the user you wish to query sessions for.")] = None,
_request_timeout: Union[
None,
@@ -205,7 +206,7 @@ def sessions_without_preload_content(
Returns a list of `Session` objects.
:param resource_id: The ID of the resource. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param user_id: The ID of the user you wish to query sessions for.
:type user_id: str
:param _request_timeout: timeout setting for this request. If one
diff --git a/opal_security/api/tags_api.py b/opal_security/api/tags_api.py
index 6a1ad3b..d5ef75f 100644
--- a/opal_security/api/tags_api.py
+++ b/opal_security/api/tags_api.py
@@ -20,6 +20,7 @@
from pydantic import Field, StrictStr
from typing import Any, Dict, Optional
from typing_extensions import Annotated
+from uuid import UUID
from opal_security.models.create_tag_info import CreateTagInfo
from opal_security.models.paginated_tags_list import PaginatedTagsList
from opal_security.models.tag import Tag
@@ -45,8 +46,8 @@ def __init__(self, api_client=None) -> None:
@validate_call
def add_group_tag(
self,
- tag_id: Annotated[StrictStr, Field(description="The ID of the tag to apply.")],
- group_id: Annotated[StrictStr, Field(description="The ID of the group to apply the tag to.")],
+ tag_id: Annotated[UUID, Field(description="The ID of the tag to apply.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group to apply the tag to.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -65,9 +66,9 @@ def add_group_tag(
Applies a tag to a group.
:param tag_id: The ID of the tag to apply. (required)
- :type tag_id: str
+ :type tag_id: UUID
:param group_id: The ID of the group to apply the tag to. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -116,8 +117,8 @@ def add_group_tag(
@validate_call
def add_group_tag_with_http_info(
self,
- tag_id: Annotated[StrictStr, Field(description="The ID of the tag to apply.")],
- group_id: Annotated[StrictStr, Field(description="The ID of the group to apply the tag to.")],
+ tag_id: Annotated[UUID, Field(description="The ID of the tag to apply.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group to apply the tag to.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -136,9 +137,9 @@ def add_group_tag_with_http_info(
Applies a tag to a group.
:param tag_id: The ID of the tag to apply. (required)
- :type tag_id: str
+ :type tag_id: UUID
:param group_id: The ID of the group to apply the tag to. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -187,8 +188,8 @@ def add_group_tag_with_http_info(
@validate_call
def add_group_tag_without_preload_content(
self,
- tag_id: Annotated[StrictStr, Field(description="The ID of the tag to apply.")],
- group_id: Annotated[StrictStr, Field(description="The ID of the group to apply the tag to.")],
+ tag_id: Annotated[UUID, Field(description="The ID of the tag to apply.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group to apply the tag to.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -207,9 +208,9 @@ def add_group_tag_without_preload_content(
Applies a tag to a group.
:param tag_id: The ID of the tag to apply. (required)
- :type tag_id: str
+ :type tag_id: UUID
:param group_id: The ID of the group to apply the tag to. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -314,8 +315,8 @@ def _add_group_tag_serialize(
@validate_call
def add_resource_tag(
self,
- tag_id: Annotated[StrictStr, Field(description="The ID of the tag to apply.")],
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource to apply the tag to.")],
+ tag_id: Annotated[UUID, Field(description="The ID of the tag to apply.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource to apply the tag to.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -334,9 +335,9 @@ def add_resource_tag(
Applies a tag to a resource.
:param tag_id: The ID of the tag to apply. (required)
- :type tag_id: str
+ :type tag_id: UUID
:param resource_id: The ID of the resource to apply the tag to. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -385,8 +386,8 @@ def add_resource_tag(
@validate_call
def add_resource_tag_with_http_info(
self,
- tag_id: Annotated[StrictStr, Field(description="The ID of the tag to apply.")],
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource to apply the tag to.")],
+ tag_id: Annotated[UUID, Field(description="The ID of the tag to apply.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource to apply the tag to.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -405,9 +406,9 @@ def add_resource_tag_with_http_info(
Applies a tag to a resource.
:param tag_id: The ID of the tag to apply. (required)
- :type tag_id: str
+ :type tag_id: UUID
:param resource_id: The ID of the resource to apply the tag to. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -456,8 +457,8 @@ def add_resource_tag_with_http_info(
@validate_call
def add_resource_tag_without_preload_content(
self,
- tag_id: Annotated[StrictStr, Field(description="The ID of the tag to apply.")],
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource to apply the tag to.")],
+ tag_id: Annotated[UUID, Field(description="The ID of the tag to apply.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource to apply the tag to.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -476,9 +477,9 @@ def add_resource_tag_without_preload_content(
Applies a tag to a resource.
:param tag_id: The ID of the tag to apply. (required)
- :type tag_id: str
+ :type tag_id: UUID
:param resource_id: The ID of the resource to apply the tag to. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -583,8 +584,8 @@ def _add_resource_tag_serialize(
@validate_call
def add_user_tag(
self,
- tag_id: Annotated[StrictStr, Field(description="The ID of the tag to apply.")],
- user_id: Annotated[StrictStr, Field(description="The ID of the user to apply the tag to.")],
+ tag_id: Annotated[UUID, Field(description="The ID of the tag to apply.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user to apply the tag to.")],
body: Optional[Dict[str, Any]] = None,
_request_timeout: Union[
None,
@@ -604,9 +605,9 @@ def add_user_tag(
Applies a tag to a user.
:param tag_id: The ID of the tag to apply. (required)
- :type tag_id: str
+ :type tag_id: UUID
:param user_id: The ID of the user to apply the tag to. (required)
- :type user_id: str
+ :type user_id: UUID
:param body:
:type body: object
:param _request_timeout: timeout setting for this request. If one
@@ -658,8 +659,8 @@ def add_user_tag(
@validate_call
def add_user_tag_with_http_info(
self,
- tag_id: Annotated[StrictStr, Field(description="The ID of the tag to apply.")],
- user_id: Annotated[StrictStr, Field(description="The ID of the user to apply the tag to.")],
+ tag_id: Annotated[UUID, Field(description="The ID of the tag to apply.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user to apply the tag to.")],
body: Optional[Dict[str, Any]] = None,
_request_timeout: Union[
None,
@@ -679,9 +680,9 @@ def add_user_tag_with_http_info(
Applies a tag to a user.
:param tag_id: The ID of the tag to apply. (required)
- :type tag_id: str
+ :type tag_id: UUID
:param user_id: The ID of the user to apply the tag to. (required)
- :type user_id: str
+ :type user_id: UUID
:param body:
:type body: object
:param _request_timeout: timeout setting for this request. If one
@@ -733,8 +734,8 @@ def add_user_tag_with_http_info(
@validate_call
def add_user_tag_without_preload_content(
self,
- tag_id: Annotated[StrictStr, Field(description="The ID of the tag to apply.")],
- user_id: Annotated[StrictStr, Field(description="The ID of the user to apply the tag to.")],
+ tag_id: Annotated[UUID, Field(description="The ID of the tag to apply.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user to apply the tag to.")],
body: Optional[Dict[str, Any]] = None,
_request_timeout: Union[
None,
@@ -754,9 +755,9 @@ def add_user_tag_without_preload_content(
Applies a tag to a user.
:param tag_id: The ID of the tag to apply. (required)
- :type tag_id: str
+ :type tag_id: UUID
:param user_id: The ID of the user to apply the tag to. (required)
- :type user_id: str
+ :type user_id: UUID
:param body:
:type body: object
:param _request_timeout: timeout setting for this request. If one
@@ -882,7 +883,7 @@ def create_tag(
self,
tag_key: Annotated[Optional[StrictStr], Field(description="The key of the tag to create.")] = None,
tag_value: Annotated[Optional[StrictStr], Field(description="The value of the tag to create.")] = None,
- admin_owner_id: Annotated[Optional[StrictStr], Field(description="The ID of the owner that manages the tag.")] = None,
+ admin_owner_id: Annotated[Optional[UUID], Field(description="The ID of the owner that manages the tag.")] = None,
create_tag_info: Optional[CreateTagInfo] = None,
_request_timeout: Union[
None,
@@ -906,7 +907,7 @@ def create_tag(
:param tag_value: The value of the tag to create.
:type tag_value: str
:param admin_owner_id: The ID of the owner that manages the tag.
- :type admin_owner_id: str
+ :type admin_owner_id: UUID
:param create_tag_info:
:type create_tag_info: CreateTagInfo
:param _request_timeout: timeout setting for this request. If one
@@ -961,7 +962,7 @@ def create_tag_with_http_info(
self,
tag_key: Annotated[Optional[StrictStr], Field(description="The key of the tag to create.")] = None,
tag_value: Annotated[Optional[StrictStr], Field(description="The value of the tag to create.")] = None,
- admin_owner_id: Annotated[Optional[StrictStr], Field(description="The ID of the owner that manages the tag.")] = None,
+ admin_owner_id: Annotated[Optional[UUID], Field(description="The ID of the owner that manages the tag.")] = None,
create_tag_info: Optional[CreateTagInfo] = None,
_request_timeout: Union[
None,
@@ -985,7 +986,7 @@ def create_tag_with_http_info(
:param tag_value: The value of the tag to create.
:type tag_value: str
:param admin_owner_id: The ID of the owner that manages the tag.
- :type admin_owner_id: str
+ :type admin_owner_id: UUID
:param create_tag_info:
:type create_tag_info: CreateTagInfo
:param _request_timeout: timeout setting for this request. If one
@@ -1040,7 +1041,7 @@ def create_tag_without_preload_content(
self,
tag_key: Annotated[Optional[StrictStr], Field(description="The key of the tag to create.")] = None,
tag_value: Annotated[Optional[StrictStr], Field(description="The value of the tag to create.")] = None,
- admin_owner_id: Annotated[Optional[StrictStr], Field(description="The ID of the owner that manages the tag.")] = None,
+ admin_owner_id: Annotated[Optional[UUID], Field(description="The ID of the owner that manages the tag.")] = None,
create_tag_info: Optional[CreateTagInfo] = None,
_request_timeout: Union[
None,
@@ -1064,7 +1065,7 @@ def create_tag_without_preload_content(
:param tag_value: The value of the tag to create.
:type tag_value: str
:param admin_owner_id: The ID of the owner that manages the tag.
- :type admin_owner_id: str
+ :type admin_owner_id: UUID
:param create_tag_info:
:type create_tag_info: CreateTagInfo
:param _request_timeout: timeout setting for this request. If one
@@ -1205,7 +1206,7 @@ def _create_tag_serialize(
@validate_call
def delete_tag_by_id(
self,
- tag_id: Annotated[StrictStr, Field(description="The tag ID")],
+ tag_id: Annotated[UUID, Field(description="The tag ID")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1224,7 +1225,7 @@ def delete_tag_by_id(
UNSTABLE. May be removed at any time. Deletes a tag with the given id.
:param tag_id: The tag ID (required)
- :type tag_id: str
+ :type tag_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1272,7 +1273,7 @@ def delete_tag_by_id(
@validate_call
def delete_tag_by_id_with_http_info(
self,
- tag_id: Annotated[StrictStr, Field(description="The tag ID")],
+ tag_id: Annotated[UUID, Field(description="The tag ID")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1291,7 +1292,7 @@ def delete_tag_by_id_with_http_info(
UNSTABLE. May be removed at any time. Deletes a tag with the given id.
:param tag_id: The tag ID (required)
- :type tag_id: str
+ :type tag_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1339,7 +1340,7 @@ def delete_tag_by_id_with_http_info(
@validate_call
def delete_tag_by_id_without_preload_content(
self,
- tag_id: Annotated[StrictStr, Field(description="The tag ID")],
+ tag_id: Annotated[UUID, Field(description="The tag ID")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1358,7 +1359,7 @@ def delete_tag_by_id_without_preload_content(
UNSTABLE. May be removed at any time. Deletes a tag with the given id.
:param tag_id: The tag ID (required)
- :type tag_id: str
+ :type tag_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1739,7 +1740,7 @@ def _get_tag_serialize(
@validate_call
def get_tag_by_id(
self,
- tag_id: Annotated[StrictStr, Field(description="The tag ID")],
+ tag_id: Annotated[UUID, Field(description="The tag ID")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1758,7 +1759,7 @@ def get_tag_by_id(
UNSTABLE. May be removed at any time. Gets a tag with the given id.
:param tag_id: The tag ID (required)
- :type tag_id: str
+ :type tag_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1806,7 +1807,7 @@ def get_tag_by_id(
@validate_call
def get_tag_by_id_with_http_info(
self,
- tag_id: Annotated[StrictStr, Field(description="The tag ID")],
+ tag_id: Annotated[UUID, Field(description="The tag ID")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1825,7 +1826,7 @@ def get_tag_by_id_with_http_info(
UNSTABLE. May be removed at any time. Gets a tag with the given id.
:param tag_id: The tag ID (required)
- :type tag_id: str
+ :type tag_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -1873,7 +1874,7 @@ def get_tag_by_id_with_http_info(
@validate_call
def get_tag_by_id_without_preload_content(
self,
- tag_id: Annotated[StrictStr, Field(description="The tag ID")],
+ tag_id: Annotated[UUID, Field(description="The tag ID")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1892,7 +1893,7 @@ def get_tag_by_id_without_preload_content(
UNSTABLE. May be removed at any time. Gets a tag with the given id.
:param tag_id: The tag ID (required)
- :type tag_id: str
+ :type tag_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2280,8 +2281,8 @@ def _get_tags_serialize(
@validate_call
def remove_group_tag(
self,
- tag_id: Annotated[StrictStr, Field(description="The ID of the tag to remove.")],
- group_id: Annotated[StrictStr, Field(description="The ID of the group to remove the tag from.")],
+ tag_id: Annotated[UUID, Field(description="The ID of the tag to remove.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group to remove the tag from.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2300,9 +2301,9 @@ def remove_group_tag(
Removes a tag from a group.
:param tag_id: The ID of the tag to remove. (required)
- :type tag_id: str
+ :type tag_id: UUID
:param group_id: The ID of the group to remove the tag from. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2351,8 +2352,8 @@ def remove_group_tag(
@validate_call
def remove_group_tag_with_http_info(
self,
- tag_id: Annotated[StrictStr, Field(description="The ID of the tag to remove.")],
- group_id: Annotated[StrictStr, Field(description="The ID of the group to remove the tag from.")],
+ tag_id: Annotated[UUID, Field(description="The ID of the tag to remove.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group to remove the tag from.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2371,9 +2372,9 @@ def remove_group_tag_with_http_info(
Removes a tag from a group.
:param tag_id: The ID of the tag to remove. (required)
- :type tag_id: str
+ :type tag_id: UUID
:param group_id: The ID of the group to remove the tag from. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2422,8 +2423,8 @@ def remove_group_tag_with_http_info(
@validate_call
def remove_group_tag_without_preload_content(
self,
- tag_id: Annotated[StrictStr, Field(description="The ID of the tag to remove.")],
- group_id: Annotated[StrictStr, Field(description="The ID of the group to remove the tag from.")],
+ tag_id: Annotated[UUID, Field(description="The ID of the tag to remove.")],
+ group_id: Annotated[UUID, Field(description="The ID of the group to remove the tag from.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2442,9 +2443,9 @@ def remove_group_tag_without_preload_content(
Removes a tag from a group.
:param tag_id: The ID of the tag to remove. (required)
- :type tag_id: str
+ :type tag_id: UUID
:param group_id: The ID of the group to remove the tag from. (required)
- :type group_id: str
+ :type group_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2549,8 +2550,8 @@ def _remove_group_tag_serialize(
@validate_call
def remove_resource_tag(
self,
- tag_id: Annotated[StrictStr, Field(description="The ID of the tag to remove.")],
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource to remove the tag from.")],
+ tag_id: Annotated[UUID, Field(description="The ID of the tag to remove.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource to remove the tag from.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2569,9 +2570,9 @@ def remove_resource_tag(
Removes a tag from a resource.
:param tag_id: The ID of the tag to remove. (required)
- :type tag_id: str
+ :type tag_id: UUID
:param resource_id: The ID of the resource to remove the tag from. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2620,8 +2621,8 @@ def remove_resource_tag(
@validate_call
def remove_resource_tag_with_http_info(
self,
- tag_id: Annotated[StrictStr, Field(description="The ID of the tag to remove.")],
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource to remove the tag from.")],
+ tag_id: Annotated[UUID, Field(description="The ID of the tag to remove.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource to remove the tag from.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2640,9 +2641,9 @@ def remove_resource_tag_with_http_info(
Removes a tag from a resource.
:param tag_id: The ID of the tag to remove. (required)
- :type tag_id: str
+ :type tag_id: UUID
:param resource_id: The ID of the resource to remove the tag from. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2691,8 +2692,8 @@ def remove_resource_tag_with_http_info(
@validate_call
def remove_resource_tag_without_preload_content(
self,
- tag_id: Annotated[StrictStr, Field(description="The ID of the tag to remove.")],
- resource_id: Annotated[StrictStr, Field(description="The ID of the resource to remove the tag from.")],
+ tag_id: Annotated[UUID, Field(description="The ID of the tag to remove.")],
+ resource_id: Annotated[UUID, Field(description="The ID of the resource to remove the tag from.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2711,9 +2712,9 @@ def remove_resource_tag_without_preload_content(
Removes a tag from a resource.
:param tag_id: The ID of the tag to remove. (required)
- :type tag_id: str
+ :type tag_id: UUID
:param resource_id: The ID of the resource to remove the tag from. (required)
- :type resource_id: str
+ :type resource_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2818,8 +2819,8 @@ def _remove_resource_tag_serialize(
@validate_call
def remove_user_tag(
self,
- tag_id: Annotated[StrictStr, Field(description="The ID of the tag to remove.")],
- user_id: Annotated[StrictStr, Field(description="The ID of the user to remove the tag from.")],
+ tag_id: Annotated[UUID, Field(description="The ID of the tag to remove.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user to remove the tag from.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2838,9 +2839,9 @@ def remove_user_tag(
Removes a tag from a user.
:param tag_id: The ID of the tag to remove. (required)
- :type tag_id: str
+ :type tag_id: UUID
:param user_id: The ID of the user to remove the tag from. (required)
- :type user_id: str
+ :type user_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2889,8 +2890,8 @@ def remove_user_tag(
@validate_call
def remove_user_tag_with_http_info(
self,
- tag_id: Annotated[StrictStr, Field(description="The ID of the tag to remove.")],
- user_id: Annotated[StrictStr, Field(description="The ID of the user to remove the tag from.")],
+ tag_id: Annotated[UUID, Field(description="The ID of the tag to remove.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user to remove the tag from.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2909,9 +2910,9 @@ def remove_user_tag_with_http_info(
Removes a tag from a user.
:param tag_id: The ID of the tag to remove. (required)
- :type tag_id: str
+ :type tag_id: UUID
:param user_id: The ID of the user to remove the tag from. (required)
- :type user_id: str
+ :type user_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -2960,8 +2961,8 @@ def remove_user_tag_with_http_info(
@validate_call
def remove_user_tag_without_preload_content(
self,
- tag_id: Annotated[StrictStr, Field(description="The ID of the tag to remove.")],
- user_id: Annotated[StrictStr, Field(description="The ID of the user to remove the tag from.")],
+ tag_id: Annotated[UUID, Field(description="The ID of the tag to remove.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user to remove the tag from.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2980,9 +2981,9 @@ def remove_user_tag_without_preload_content(
Removes a tag from a user.
:param tag_id: The ID of the tag to remove. (required)
- :type tag_id: str
+ :type tag_id: UUID
:param user_id: The ID of the user to remove the tag from. (required)
- :type user_id: str
+ :type user_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
diff --git a/opal_security/api/uars_api.py b/opal_security/api/uars_api.py
index 36d22dc..f3f0df1 100644
--- a/opal_security/api/uars_api.py
+++ b/opal_security/api/uars_api.py
@@ -20,6 +20,7 @@
from pydantic import Field, StrictStr
from typing import Optional
from typing_extensions import Annotated
+from uuid import UUID
from opal_security.models.create_uar_info import CreateUARInfo
from opal_security.models.paginated_uars_list import PaginatedUARsList
from opal_security.models.uar import UAR
@@ -319,7 +320,7 @@ def _create_uar_serialize(
@validate_call
def get_uar(
self,
- uar_id: Annotated[StrictStr, Field(description="The ID of the UAR.")],
+ uar_id: Annotated[UUID, Field(description="The ID of the UAR.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -338,7 +339,7 @@ def get_uar(
Retrieves a specific UAR.
:param uar_id: The ID of the UAR. (required)
- :type uar_id: str
+ :type uar_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -386,7 +387,7 @@ def get_uar(
@validate_call
def get_uar_with_http_info(
self,
- uar_id: Annotated[StrictStr, Field(description="The ID of the UAR.")],
+ uar_id: Annotated[UUID, Field(description="The ID of the UAR.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -405,7 +406,7 @@ def get_uar_with_http_info(
Retrieves a specific UAR.
:param uar_id: The ID of the UAR. (required)
- :type uar_id: str
+ :type uar_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -453,7 +454,7 @@ def get_uar_with_http_info(
@validate_call
def get_uar_without_preload_content(
self,
- uar_id: Annotated[StrictStr, Field(description="The ID of the UAR.")],
+ uar_id: Annotated[UUID, Field(description="The ID of the UAR.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -472,7 +473,7 @@ def get_uar_without_preload_content(
Retrieves a specific UAR.
:param uar_id: The ID of the UAR. (required)
- :type uar_id: str
+ :type uar_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
diff --git a/opal_security/api/users_api.py b/opal_security/api/users_api.py
index ec22a85..cdb9cd0 100644
--- a/opal_security/api/users_api.py
+++ b/opal_security/api/users_api.py
@@ -20,6 +20,7 @@
from pydantic import Field, StrictStr
from typing import List, Optional
from typing_extensions import Annotated
+from uuid import UUID
from opal_security.models.paginated_remote_users_list import PaginatedRemoteUsersList
from opal_security.models.paginated_users_list import PaginatedUsersList
from opal_security.models.tags_list import TagsList
@@ -48,7 +49,7 @@ def __init__(self, api_client=None) -> None:
def get_remote_users(
self,
third_party_provider: Annotated[Optional[List[ThirdPartyProviderEnum]], Field(description="Filter remote users by their third party provider.")] = None,
- user_id: Annotated[Optional[List[StrictStr]], Field(description="Filter remote users by their user ID.")] = None,
+ user_id: Annotated[Optional[List[UUID]], Field(description="Filter remote users by their user ID.")] = None,
remote_id: Annotated[Optional[List[StrictStr]], Field(description="Filter remote users by their remote ID.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="The pagination cursor value.")] = None,
page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True)]], Field(description="Number of results to return per page. Default is 200.")] = None,
@@ -72,7 +73,7 @@ def get_remote_users(
:param third_party_provider: Filter remote users by their third party provider.
:type third_party_provider: List[ThirdPartyProviderEnum]
:param user_id: Filter remote users by their user ID.
- :type user_id: List[str]
+ :type user_id: List[UUID]
:param remote_id: Filter remote users by their remote ID.
:type remote_id: List[str]
:param cursor: The pagination cursor value.
@@ -131,7 +132,7 @@ def get_remote_users(
def get_remote_users_with_http_info(
self,
third_party_provider: Annotated[Optional[List[ThirdPartyProviderEnum]], Field(description="Filter remote users by their third party provider.")] = None,
- user_id: Annotated[Optional[List[StrictStr]], Field(description="Filter remote users by their user ID.")] = None,
+ user_id: Annotated[Optional[List[UUID]], Field(description="Filter remote users by their user ID.")] = None,
remote_id: Annotated[Optional[List[StrictStr]], Field(description="Filter remote users by their remote ID.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="The pagination cursor value.")] = None,
page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True)]], Field(description="Number of results to return per page. Default is 200.")] = None,
@@ -155,7 +156,7 @@ def get_remote_users_with_http_info(
:param third_party_provider: Filter remote users by their third party provider.
:type third_party_provider: List[ThirdPartyProviderEnum]
:param user_id: Filter remote users by their user ID.
- :type user_id: List[str]
+ :type user_id: List[UUID]
:param remote_id: Filter remote users by their remote ID.
:type remote_id: List[str]
:param cursor: The pagination cursor value.
@@ -214,7 +215,7 @@ def get_remote_users_with_http_info(
def get_remote_users_without_preload_content(
self,
third_party_provider: Annotated[Optional[List[ThirdPartyProviderEnum]], Field(description="Filter remote users by their third party provider.")] = None,
- user_id: Annotated[Optional[List[StrictStr]], Field(description="Filter remote users by their user ID.")] = None,
+ user_id: Annotated[Optional[List[UUID]], Field(description="Filter remote users by their user ID.")] = None,
remote_id: Annotated[Optional[List[StrictStr]], Field(description="Filter remote users by their remote ID.")] = None,
cursor: Annotated[Optional[StrictStr], Field(description="The pagination cursor value.")] = None,
page_size: Annotated[Optional[Annotated[int, Field(le=1000, strict=True)]], Field(description="Number of results to return per page. Default is 200.")] = None,
@@ -238,7 +239,7 @@ def get_remote_users_without_preload_content(
:param third_party_provider: Filter remote users by their third party provider.
:type third_party_provider: List[ThirdPartyProviderEnum]
:param user_id: Filter remote users by their user ID.
- :type user_id: List[str]
+ :type user_id: List[UUID]
:param remote_id: Filter remote users by their remote ID.
:type remote_id: List[str]
:param cursor: The pagination cursor value.
@@ -381,7 +382,7 @@ def _get_remote_users_serialize(
@validate_call
def get_user_tags(
self,
- user_id: Annotated[StrictStr, Field(description="The ID of the user whose tags to return.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user whose tags to return.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -400,7 +401,7 @@ def get_user_tags(
Returns all tags applied to the user.
:param user_id: The ID of the user whose tags to return. (required)
- :type user_id: str
+ :type user_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -448,7 +449,7 @@ def get_user_tags(
@validate_call
def get_user_tags_with_http_info(
self,
- user_id: Annotated[StrictStr, Field(description="The ID of the user whose tags to return.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user whose tags to return.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -467,7 +468,7 @@ def get_user_tags_with_http_info(
Returns all tags applied to the user.
:param user_id: The ID of the user whose tags to return. (required)
- :type user_id: str
+ :type user_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -515,7 +516,7 @@ def get_user_tags_with_http_info(
@validate_call
def get_user_tags_without_preload_content(
self,
- user_id: Annotated[StrictStr, Field(description="The ID of the user whose tags to return.")],
+ user_id: Annotated[UUID, Field(description="The ID of the user whose tags to return.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -534,7 +535,7 @@ def get_user_tags_without_preload_content(
Returns all tags applied to the user.
:param user_id: The ID of the user whose tags to return. (required)
- :type user_id: str
+ :type user_id: UUID
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
timeout. It can also be a pair (tuple) of
@@ -922,7 +923,7 @@ def _get_users_serialize(
@validate_call
def user(
self,
- user_id: Annotated[Optional[StrictStr], Field(description="The user ID of the user.")] = None,
+ user_id: Annotated[Optional[UUID], Field(description="The user ID of the user.")] = None,
email: Annotated[Optional[StrictStr], Field(description="The email of the user. If both user ID and email are provided, user ID will take precedence. If neither are provided, an error will occur.")] = None,
_request_timeout: Union[
None,
@@ -942,7 +943,7 @@ def user(
Returns a `User` object.
:param user_id: The user ID of the user.
- :type user_id: str
+ :type user_id: UUID
:param email: The email of the user. If both user ID and email are provided, user ID will take precedence. If neither are provided, an error will occur.
:type email: str
:param _request_timeout: timeout setting for this request. If one
@@ -993,7 +994,7 @@ def user(
@validate_call
def user_with_http_info(
self,
- user_id: Annotated[Optional[StrictStr], Field(description="The user ID of the user.")] = None,
+ user_id: Annotated[Optional[UUID], Field(description="The user ID of the user.")] = None,
email: Annotated[Optional[StrictStr], Field(description="The email of the user. If both user ID and email are provided, user ID will take precedence. If neither are provided, an error will occur.")] = None,
_request_timeout: Union[
None,
@@ -1013,7 +1014,7 @@ def user_with_http_info(
Returns a `User` object.
:param user_id: The user ID of the user.
- :type user_id: str
+ :type user_id: UUID
:param email: The email of the user. If both user ID and email are provided, user ID will take precedence. If neither are provided, an error will occur.
:type email: str
:param _request_timeout: timeout setting for this request. If one
@@ -1064,7 +1065,7 @@ def user_with_http_info(
@validate_call
def user_without_preload_content(
self,
- user_id: Annotated[Optional[StrictStr], Field(description="The user ID of the user.")] = None,
+ user_id: Annotated[Optional[UUID], Field(description="The user ID of the user.")] = None,
email: Annotated[Optional[StrictStr], Field(description="The email of the user. If both user ID and email are provided, user ID will take precedence. If neither are provided, an error will occur.")] = None,
_request_timeout: Union[
None,
@@ -1084,7 +1085,7 @@ def user_without_preload_content(
Returns a `User` object.
:param user_id: The user ID of the user.
- :type user_id: str
+ :type user_id: UUID
:param email: The email of the user. If both user ID and email are provided, user ID will take precedence. If neither are provided, an error will occur.
:type email: str
:param _request_timeout: timeout setting for this request. If one
diff --git a/opal_security/api_client.py b/opal_security/api_client.py
index a99efc4..5492861 100644
--- a/opal_security/api_client.py
+++ b/opal_security/api_client.py
@@ -22,6 +22,7 @@
import os
import re
import tempfile
+import uuid
from urllib.parse import quote
from typing import Tuple, Optional, List, Dict, Union
@@ -312,7 +313,7 @@ def response_deserialize(
return_data = self.__deserialize_file(response_data)
elif response_type is not None:
match = None
- content_type = response_data.getheader('content-type')
+ content_type = response_data.headers.get('content-type')
if content_type is not None:
match = re.search(r"charset=([a-zA-Z\-\d]+)[\s;]?", content_type)
encoding = match.group(1) if match else "utf-8"
@@ -329,7 +330,7 @@ def response_deserialize(
return ApiResponse(
status_code = response_data.status,
data = return_data,
- headers = response_data.getheaders(),
+ headers = response_data.headers,
raw_data = response_data.data
)
@@ -357,6 +358,8 @@ def sanitize_for_serialization(self, obj):
return obj.get_secret_value()
elif isinstance(obj, self.PRIMITIVE_TYPES):
return obj
+ elif isinstance(obj, uuid.UUID):
+ return str(obj)
elif isinstance(obj, list):
return [
self.sanitize_for_serialization(sub_obj) for sub_obj in obj
@@ -383,6 +386,10 @@ def sanitize_for_serialization(self, obj):
else:
obj_dict = obj.__dict__
+ if isinstance(obj_dict, list):
+ # here we handle instances that can either be a list or something else, and only became a real list by calling to_dict()
+ return self.sanitize_for_serialization(obj_dict)
+
return {
key: self.sanitize_for_serialization(val)
for key, val in obj_dict.items()
@@ -405,7 +412,7 @@ def deserialize(self, response_text: str, response_type: str, content_type: Opti
data = json.loads(response_text)
except ValueError:
data = response_text
- elif re.match(r'^application/(json|[\w!#$&.+-^_]+\+json)\s*(;|$)', content_type, re.IGNORECASE):
+ elif re.match(r'^application/(json|[\w!#$&.+\-^_]+\+json)\s*(;|$)', content_type, re.IGNORECASE):
if response_text == "":
data = ""
else:
@@ -454,13 +461,13 @@ def __deserialize(self, data, klass):
if klass in self.PRIMITIVE_TYPES:
return self.__deserialize_primitive(data, klass)
- elif klass == object:
+ elif klass is object:
return self.__deserialize_object(data)
- elif klass == datetime.date:
+ elif klass is datetime.date:
return self.__deserialize_date(data)
- elif klass == datetime.datetime:
+ elif klass is datetime.datetime:
return self.__deserialize_datetime(data)
- elif klass == decimal.Decimal:
+ elif klass is decimal.Decimal:
return decimal.Decimal(data)
elif issubclass(klass, Enum):
return self.__deserialize_enum(data, klass)
@@ -518,7 +525,7 @@ def parameters_to_url_query(self, params, collection_formats):
if k in collection_formats:
collection_format = collection_formats[k]
if collection_format == 'multi':
- new_params.extend((k, str(value)) for value in v)
+ new_params.extend((k, quote(str(value))) for value in v)
else:
if collection_format == 'ssv':
delimiter = ' '
@@ -695,7 +702,7 @@ def __deserialize_file(self, response):
os.close(fd)
os.remove(path)
- content_disposition = response.getheader("Content-Disposition")
+ content_disposition = response.headers.get("Content-Disposition")
if content_disposition:
m = re.search(
r'filename=[\'"]?([^\'"\s]+)[\'"]?',
diff --git a/opal_security/configuration.py b/opal_security/configuration.py
index f8a4d28..d66db0a 100644
--- a/opal_security/configuration.py
+++ b/opal_security/configuration.py
@@ -19,7 +19,7 @@
from logging import FileHandler
import multiprocessing
import sys
-from typing import Any, ClassVar, Dict, List, Literal, Optional, TypedDict
+from typing import Any, ClassVar, Dict, List, Literal, Optional, TypedDict, Union
from typing_extensions import NotRequired, Self
import urllib3
@@ -162,6 +162,10 @@ class Configuration:
:param ssl_ca_cert: str - the path to a file of concatenated CA certificates
in PEM format.
:param retries: Number of retries for API requests.
+ :param ca_cert_data: verify the peer using concatenated CA certificate data
+ in PEM (str) or DER (bytes) format.
+ :param cert_file: the path to a client certificate file, for mTLS.
+ :param key_file: the path to a client key file, for mTLS.
:Example:
"""
@@ -176,13 +180,16 @@ def __init__(
username: Optional[str]=None,
password: Optional[str]=None,
access_token: Optional[str]=None,
- server_index: Optional[int]=None,
+ server_index: Optional[int]=None,
server_variables: Optional[ServerVariablesT]=None,
server_operation_index: Optional[Dict[int, int]]=None,
server_operation_variables: Optional[Dict[int, ServerVariablesT]]=None,
ignore_operation_servers: bool=False,
ssl_ca_cert: Optional[str]=None,
retries: Optional[int] = None,
+ ca_cert_data: Optional[Union[str, bytes]] = None,
+ cert_file: Optional[str]=None,
+ key_file: Optional[str]=None,
*,
debug: Optional[bool] = None,
) -> None:
@@ -260,10 +267,14 @@ def __init__(
self.ssl_ca_cert = ssl_ca_cert
"""Set this to customize the certificate file to verify the peer.
"""
- self.cert_file = None
+ self.ca_cert_data = ca_cert_data
+ """Set this to verify the peer using PEM (str) or DER (bytes)
+ certificate data.
+ """
+ self.cert_file = cert_file
"""client certificate file
"""
- self.key_file = None
+ self.key_file = key_file
"""client key file
"""
self.assert_hostname = None
@@ -476,6 +487,7 @@ def get_basic_auth_token(self) -> Optional[str]:
password = ""
if self.password is not None:
password = self.password
+
return urllib3.util.make_headers(
basic_auth=username + ':' + password
).get('authorization')
@@ -552,6 +564,7 @@ def get_host_from_settings(
variable_name, variable['default_value'])
if 'enum_values' in variable \
+ and variable['enum_values'] \
and used_value not in variable['enum_values']:
raise ValueError(
"The variable `{0}` in the host URL has invalid value "
diff --git a/opal_security/exceptions.py b/opal_security/exceptions.py
index 12f9285..1c1f98a 100644
--- a/opal_security/exceptions.py
+++ b/opal_security/exceptions.py
@@ -129,7 +129,7 @@ def __init__(
self.body = http_resp.data.decode('utf-8')
except Exception:
pass
- self.headers = http_resp.getheaders()
+ self.headers = http_resp.headers
@classmethod
def from_response(
@@ -151,6 +151,13 @@ def from_response(
if http_resp.status == 404:
raise NotFoundException(http_resp=http_resp, body=body, data=data)
+ # Added new conditions for 409 and 422
+ if http_resp.status == 409:
+ raise ConflictException(http_resp=http_resp, body=body, data=data)
+
+ if http_resp.status == 422:
+ raise UnprocessableEntityException(http_resp=http_resp, body=body, data=data)
+
if 500 <= http_resp.status <= 599:
raise ServiceException(http_resp=http_resp, body=body, data=data)
raise ApiException(http_resp=http_resp, body=body, data=data)
@@ -163,8 +170,11 @@ def __str__(self):
error_message += "HTTP response headers: {0}\n".format(
self.headers)
- if self.data or self.body:
- error_message += "HTTP response body: {0}\n".format(self.data or self.body)
+ if self.body:
+ error_message += "HTTP response body: {0}\n".format(self.body)
+
+ if self.data:
+ error_message += "HTTP response data: {0}\n".format(self.data)
return error_message
@@ -189,6 +199,16 @@ class ServiceException(ApiException):
pass
+class ConflictException(ApiException):
+ """Exception for HTTP 409 Conflict."""
+ pass
+
+
+class UnprocessableEntityException(ApiException):
+ """Exception for HTTP 422 Unprocessable Entity."""
+ pass
+
+
def render_path(path_to_item):
"""Returns a string representation of a path"""
result = ""
diff --git a/opal_security/models/__init__.py b/opal_security/models/__init__.py
index 9f13590..4b2021b 100644
--- a/opal_security/models/__init__.py
+++ b/opal_security/models/__init__.py
@@ -13,7 +13,6 @@
Do not edit the class manually.
""" # noqa: E501
-
# import models into model package
from opal_security.models.access import Access
from opal_security.models.access_list import AccessList
@@ -73,16 +72,24 @@
from opal_security.models.group_containing_group_list import GroupContainingGroupList
from opal_security.models.group_remote_info import GroupRemoteInfo
from opal_security.models.group_remote_info_active_directory_group import GroupRemoteInfoActiveDirectoryGroup
+from opal_security.models.group_remote_info_aws_sso_group import GroupRemoteInfoAwsSsoGroup
from opal_security.models.group_remote_info_azure_ad_microsoft365_group import GroupRemoteInfoAzureAdMicrosoft365Group
from opal_security.models.group_remote_info_azure_ad_security_group import GroupRemoteInfoAzureAdSecurityGroup
+from opal_security.models.group_remote_info_connector_group import GroupRemoteInfoConnectorGroup
+from opal_security.models.group_remote_info_databricks_account_group import GroupRemoteInfoDatabricksAccountGroup
+from opal_security.models.group_remote_info_devin_group import GroupRemoteInfoDevinGroup
from opal_security.models.group_remote_info_duo_group import GroupRemoteInfoDuoGroup
from opal_security.models.group_remote_info_github_team import GroupRemoteInfoGithubTeam
from opal_security.models.group_remote_info_gitlab_group import GroupRemoteInfoGitlabGroup
from opal_security.models.group_remote_info_google_group import GroupRemoteInfoGoogleGroup
+from opal_security.models.group_remote_info_incidentio_on_call_schedule import GroupRemoteInfoIncidentioOnCallSchedule
from opal_security.models.group_remote_info_ldap_group import GroupRemoteInfoLdapGroup
from opal_security.models.group_remote_info_okta_group import GroupRemoteInfoOktaGroup
from opal_security.models.group_remote_info_okta_group_rule import GroupRemoteInfoOktaGroupRule
+from opal_security.models.group_remote_info_pagerduty_on_call_schedule import GroupRemoteInfoPagerdutyOnCallSchedule
+from opal_security.models.group_remote_info_rootly_on_call_schedule import GroupRemoteInfoRootlyOnCallSchedule
from opal_security.models.group_remote_info_snowflake_role import GroupRemoteInfoSnowflakeRole
+from opal_security.models.group_remote_info_tailscale_group import GroupRemoteInfoTailscaleGroup
from opal_security.models.group_remote_info_workday_user_security_group import GroupRemoteInfoWorkdayUserSecurityGroup
from opal_security.models.group_resource import GroupResource
from opal_security.models.group_resource_list import GroupResourceList
@@ -119,6 +126,7 @@
from opal_security.models.paginated_users_list import PaginatedUsersList
from opal_security.models.propagation_status import PropagationStatus
from opal_security.models.propagation_status_enum import PropagationStatusEnum
+from opal_security.models.rds_engine_enum import RDSEngineEnum
from opal_security.models.remote_user import RemoteUser
from opal_security.models.request import Request
from opal_security.models.request_approval_enum import RequestApprovalEnum
@@ -150,6 +158,7 @@
from opal_security.models.resource_remote_info_aws_iam_role import ResourceRemoteInfoAwsIamRole
from opal_security.models.resource_remote_info_aws_organizational_unit import ResourceRemoteInfoAwsOrganizationalUnit
from opal_security.models.resource_remote_info_aws_permission_set import ResourceRemoteInfoAwsPermissionSet
+from opal_security.models.resource_remote_info_aws_rds_cluster import ResourceRemoteInfoAwsRdsCluster
from opal_security.models.resource_remote_info_aws_rds_instance import ResourceRemoteInfoAwsRdsInstance
from opal_security.models.resource_remote_info_azure_enterprise_app import ResourceRemoteInfoAzureEnterpriseApp
from opal_security.models.resource_remote_info_azure_entra_id_role import ResourceRemoteInfoAzureEntraIdRole
@@ -167,7 +176,10 @@
from opal_security.models.resource_remote_info_coupa_role import ResourceRemoteInfoCoupaRole
from opal_security.models.resource_remote_info_cursor_organization import ResourceRemoteInfoCursorOrganization
from opal_security.models.resource_remote_info_custom_connector import ResourceRemoteInfoCustomConnector
+from opal_security.models.resource_remote_info_databricks_account_service_principal import ResourceRemoteInfoDatabricksAccountServicePrincipal
from opal_security.models.resource_remote_info_datastax_astra_role import ResourceRemoteInfoDatastaxAstraRole
+from opal_security.models.resource_remote_info_devin_organization import ResourceRemoteInfoDevinOrganization
+from opal_security.models.resource_remote_info_devin_role import ResourceRemoteInfoDevinRole
from opal_security.models.resource_remote_info_gcp_big_query_dataset import ResourceRemoteInfoGcpBigQueryDataset
from opal_security.models.resource_remote_info_gcp_big_query_table import ResourceRemoteInfoGcpBigQueryTable
from opal_security.models.resource_remote_info_gcp_bucket import ResourceRemoteInfoGcpBucket
@@ -183,6 +195,7 @@
from opal_security.models.resource_remote_info_github_repo import ResourceRemoteInfoGithubRepo
from opal_security.models.resource_remote_info_gitlab_project import ResourceRemoteInfoGitlabProject
from opal_security.models.resource_remote_info_google_workspace_role import ResourceRemoteInfoGoogleWorkspaceRole
+from opal_security.models.resource_remote_info_ilevel_advanced_role import ResourceRemoteInfoIlevelAdvancedRole
from opal_security.models.resource_remote_info_okta_app import ResourceRemoteInfoOktaApp
from opal_security.models.resource_remote_info_okta_custom_role import ResourceRemoteInfoOktaCustomRole
from opal_security.models.resource_remote_info_okta_standard_role import ResourceRemoteInfoOktaStandardRole
@@ -193,7 +206,12 @@
from opal_security.models.resource_remote_info_salesforce_permission_set import ResourceRemoteInfoSalesforcePermissionSet
from opal_security.models.resource_remote_info_salesforce_profile import ResourceRemoteInfoSalesforceProfile
from opal_security.models.resource_remote_info_salesforce_role import ResourceRemoteInfoSalesforceRole
+from opal_security.models.resource_remote_info_snowflake_database import ResourceRemoteInfoSnowflakeDatabase
+from opal_security.models.resource_remote_info_snowflake_schema import ResourceRemoteInfoSnowflakeSchema
+from opal_security.models.resource_remote_info_snowflake_table import ResourceRemoteInfoSnowflakeTable
+from opal_security.models.resource_remote_info_tailscale_ssh import ResourceRemoteInfoTailscaleSsh
from opal_security.models.resource_remote_info_teleport_role import ResourceRemoteInfoTeleportRole
+from opal_security.models.resource_remote_info_workday_role import ResourceRemoteInfoWorkdayRole
from opal_security.models.resource_type_enum import ResourceTypeEnum
from opal_security.models.resource_user import ResourceUser
from opal_security.models.resource_user_access_status import ResourceUserAccessStatus
@@ -248,3 +266,4 @@
from opal_security.models.user_list import UserList
from opal_security.models.visibility_info import VisibilityInfo
from opal_security.models.visibility_type_enum import VisibilityTypeEnum
+
diff --git a/opal_security/models/access.py b/opal_security/models/access.py
index 2b0a349..bddddea 100644
--- a/opal_security/models/access.py
+++ b/opal_security/models/access.py
@@ -19,8 +19,9 @@
import json
from datetime import datetime
-from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr
+from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from opal_security.models.entity_type_enum import EntityTypeEnum
from opal_security.models.resource_access_level import ResourceAccessLevel
from typing import Optional, Set
@@ -30,9 +31,9 @@ class Access(BaseModel):
"""
# Access Object ### Description The `Access` object is used to represent a principal's access to an entity, either directly or inherited. ### Usage Example Fetch from the `LIST ResourceNonHumanIdentities` endpoint.
""" # noqa: E501
- principal_id: StrictStr = Field(description="The ID of the principal with access.")
+ principal_id: UUID = Field(description="The ID of the principal with access.")
principal_type: EntityTypeEnum
- entity_id: StrictStr = Field(description="The ID of the entity being accessed.")
+ entity_id: UUID = Field(description="The ID of the entity being accessed.")
entity_type: EntityTypeEnum
access_level: Optional[ResourceAccessLevel] = None
expiration_date: Optional[datetime] = Field(default=None, description="The day and time the principal's access will expire.")
diff --git a/opal_security/models/access_rule.py b/opal_security/models/access_rule.py
index ed3e0f8..74438db 100644
--- a/opal_security/models/access_rule.py
+++ b/opal_security/models/access_rule.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
from typing import Any, ClassVar, Dict, List
+from uuid import UUID
from opal_security.models.rule_clauses import RuleClauses
from typing import Optional, Set
from typing_extensions import Self
@@ -28,10 +29,10 @@ class AccessRule(BaseModel):
"""
# Access Rule Object ### Description The `AccessRule` object is used to represent an access rule configuration. ### Usage Example Get access rule configurations from the `GET Access Rule Configs` endpoint.
""" # noqa: E501
- access_rule_id: StrictStr = Field(description="The ID (group ID) of the access rule.")
+ access_rule_id: UUID = Field(description="The ID (group ID) of the access rule.")
name: StrictStr = Field(description="The name of the access rule.")
description: StrictStr = Field(description="A description of the group.")
- admin_owner_id: StrictStr = Field(description="The ID of the owner of the group.")
+ admin_owner_id: UUID = Field(description="The ID of the owner of the group.")
status: StrictStr = Field(description="The status of the access rule.")
rule_clauses: RuleClauses = Field(alias="ruleClauses")
additional_properties: Dict[str, Any] = {}
diff --git a/opal_security/models/add_bundle_group_request.py b/opal_security/models/add_bundle_group_request.py
index 0fd11a2..a623f29 100644
--- a/opal_security/models/add_bundle_group_request.py
+++ b/opal_security/models/add_bundle_group_request.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -27,7 +28,7 @@ class AddBundleGroupRequest(BaseModel):
"""
AddBundleGroupRequest
""" # noqa: E501
- group_id: StrictStr = Field(description="The ID of the group to add.")
+ group_id: UUID = Field(description="The ID of the group to add.")
access_level_remote_id: Optional[StrictStr] = Field(default=None, description="The remote ID of the access level to grant to this user. Required if the group being added requires an access level. If omitted, the default access level remote ID value (empty string) is used.")
access_level_name: Optional[StrictStr] = Field(default=None, description="The name of the access level to grant to this user. If omitted, the default access level name value (empty string) is used.")
additional_properties: Dict[str, Any] = {}
diff --git a/opal_security/models/add_bundle_resource_request.py b/opal_security/models/add_bundle_resource_request.py
index 9320d29..546e406 100644
--- a/opal_security/models/add_bundle_resource_request.py
+++ b/opal_security/models/add_bundle_resource_request.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -27,7 +28,7 @@ class AddBundleResourceRequest(BaseModel):
"""
AddBundleResourceRequest
""" # noqa: E501
- resource_id: StrictStr = Field(description="The ID of the resource to add.")
+ resource_id: UUID = Field(description="The ID of the resource to add.")
access_level_remote_id: Optional[StrictStr] = Field(default=None, description="The remote ID of the access level to grant to this user. Required if the resource being added requires an access level. If omitted, the default access level remote ID value (empty string) is used.")
access_level_name: Optional[StrictStr] = Field(default=None, description="The name of the access level to grant to this user. If omitted, the default access level name value (empty string) is used.")
additional_properties: Dict[str, Any] = {}
diff --git a/opal_security/models/app.py b/opal_security/models/app.py
index a0f32dd..7cfb7c9 100644
--- a/opal_security/models/app.py
+++ b/opal_security/models/app.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from opal_security.models.app_type_enum import AppTypeEnum
from opal_security.models.app_validation import AppValidation
from typing import Optional, Set
@@ -29,10 +30,10 @@ class App(BaseModel):
"""
# App Object ### Description The `App` object is used to represent an app to an application. ### Usage Example List from the `GET Apps` endpoint.
""" # noqa: E501
- app_id: StrictStr = Field(description="The ID of the app.")
+ app_id: UUID = Field(description="The ID of the app.")
name: StrictStr = Field(description="The name of the app.")
description: StrictStr = Field(description="A description of the app.")
- admin_owner_id: StrictStr = Field(description="The ID of the owner of the app.")
+ admin_owner_id: UUID = Field(description="The ID of the owner of the app.")
app_type: AppTypeEnum
validations: Optional[List[AppValidation]] = Field(default=None, description="Validation checks of an apps' configuration and permissions.")
additional_properties: Dict[str, Any] = {}
diff --git a/opal_security/models/app_type_enum.py b/opal_security/models/app_type_enum.py
index 2db8bb2..0385cb8 100644
--- a/opal_security/models/app_type_enum.py
+++ b/opal_security/models/app_type_enum.py
@@ -28,25 +28,34 @@ class AppTypeEnum(str, Enum):
allowed enum values
"""
ACTIVE_DIRECTORY = 'ACTIVE_DIRECTORY'
+ ANTHROPIC = 'ANTHROPIC'
AZURE_AD = 'AZURE_AD'
AWS = 'AWS'
AWS_SSO = 'AWS_SSO'
+ COUPA = 'COUPA'
+ CURSOR = 'CURSOR'
CUSTOM = 'CUSTOM'
+ DATABRICKS = 'DATABRICKS'
+ DATASTAX_ASTRA = 'DATASTAX_ASTRA'
DUO = 'DUO'
GCP = 'GCP'
GIT_HUB = 'GIT_HUB'
GIT_LAB = 'GIT_LAB'
GOOGLE_GROUPS = 'GOOGLE_GROUPS'
GOOGLE_WORKSPACE = 'GOOGLE_WORKSPACE'
+ ILEVEL = 'ILEVEL'
+ INCIDENTIO = 'INCIDENTIO'
LDAP = 'LDAP'
MARIADB = 'MARIADB'
MONGO = 'MONGO'
MONGO_ATLAS = 'MONGO_ATLAS'
MYSQL = 'MYSQL'
OKTA_DIRECTORY = 'OKTA_DIRECTORY'
+ OPENAI_PLATFORM = 'OPENAI_PLATFORM'
OPAL = 'OPAL'
PAGERDUTY = 'PAGERDUTY'
SALESFORCE = 'SALESFORCE'
+ SNOWFLAKE = 'SNOWFLAKE'
TAILSCALE = 'TAILSCALE'
TELEPORT = 'TELEPORT'
WORKDAY = 'WORKDAY'
diff --git a/opal_security/models/bundle.py b/opal_security/models/bundle.py
index bf2965b..fd77d1f 100644
--- a/opal_security/models/bundle.py
+++ b/opal_security/models/bundle.py
@@ -21,6 +21,7 @@
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -28,12 +29,12 @@ class Bundle(BaseModel):
"""
Bundle
""" # noqa: E501
- bundle_id: Optional[StrictStr] = Field(default=None, description="The ID of the bundle.")
+ bundle_id: Optional[UUID] = Field(default=None, description="The ID of the bundle.")
name: Optional[StrictStr] = Field(default=None, description="The name of the bundle.")
description: Optional[StrictStr] = Field(default=None, description="The description of the bundle.")
created_at: Optional[datetime] = Field(default=None, description="The creation timestamp of the bundle, in ISO 8601 format")
updated_at: Optional[datetime] = Field(default=None, description="The last updated timestamp of the bundle, in ISO 8601 format")
- admin_owner_id: Optional[StrictStr] = Field(default=None, description="The ID of the owner of the bundle.")
+ admin_owner_id: Optional[UUID] = Field(default=None, description="The ID of the owner of the bundle.")
total_num_items: Optional[StrictInt] = Field(default=None, description="The total number of items in the bundle.")
total_num_resources: Optional[StrictInt] = Field(default=None, description="The total number of resources in the bundle.")
total_num_groups: Optional[StrictInt] = Field(default=None, description="The total number of groups in the bundle.")
diff --git a/opal_security/models/bundle_group.py b/opal_security/models/bundle_group.py
index f9927ae..dedd311 100644
--- a/opal_security/models/bundle_group.py
+++ b/opal_security/models/bundle_group.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -27,8 +28,8 @@ class BundleGroup(BaseModel):
"""
BundleGroup
""" # noqa: E501
- bundle_id: Optional[StrictStr] = Field(default=None, description="The ID of the bundle containing the group.")
- group_id: Optional[StrictStr] = Field(default=None, description="The ID of the group within a bundle.")
+ bundle_id: Optional[UUID] = Field(default=None, description="The ID of the bundle containing the group.")
+ group_id: Optional[UUID] = Field(default=None, description="The ID of the group within a bundle.")
access_level_name: Optional[StrictStr] = Field(default=None, description="The access level of the group within a bundle.")
access_level_remote_id: Optional[StrictStr] = Field(default=None, description="The remote ID of the access level of the group within a bundle.")
additional_properties: Dict[str, Any] = {}
diff --git a/opal_security/models/bundle_resource.py b/opal_security/models/bundle_resource.py
index 004c46e..30b0c22 100644
--- a/opal_security/models/bundle_resource.py
+++ b/opal_security/models/bundle_resource.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -27,8 +28,8 @@ class BundleResource(BaseModel):
"""
BundleResource
""" # noqa: E501
- bundle_id: Optional[StrictStr] = Field(default=None, description="The ID of the bundle containing the resource.")
- resource_id: Optional[StrictStr] = Field(default=None, description="The ID of the resource within a bundle.")
+ bundle_id: Optional[UUID] = Field(default=None, description="The ID of the bundle containing the resource.")
+ resource_id: Optional[UUID] = Field(default=None, description="The ID of the resource within a bundle.")
access_level_name: Optional[StrictStr] = Field(default=None, description="The access level of the resource within a bundle.")
access_level_remote_id: Optional[StrictStr] = Field(default=None, description="The remote ID of the access level of the resource within a bundle.")
additional_properties: Dict[str, Any] = {}
diff --git a/opal_security/models/condition.py b/opal_security/models/condition.py
index ad4c5f4..c8376fd 100644
--- a/opal_security/models/condition.py
+++ b/opal_security/models/condition.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -27,7 +28,7 @@ class Condition(BaseModel):
"""
# Condition Object ### Description The `Condition` object is used to represent a condition. ### Usage Example Used to match request configurations to users in `RequestConfiguration`
""" # noqa: E501
- group_ids: Optional[List[StrictStr]] = Field(default=None, description="The list of group IDs to match.")
+ group_ids: Optional[List[UUID]] = Field(default=None, description="The list of group IDs to match.")
role_remote_ids: Optional[List[StrictStr]] = Field(default=None, description="The list of role remote IDs to match.")
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["group_ids", "role_remote_ids"]
diff --git a/opal_security/models/configuration_template.py b/opal_security/models/configuration_template.py
index dbf0800..3cf9970 100644
--- a/opal_security/models/configuration_template.py
+++ b/opal_security/models/configuration_template.py
@@ -21,6 +21,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from typing_extensions import Annotated
+from uuid import UUID
from opal_security.models.ticket_propagation_configuration import TicketPropagationConfiguration
from opal_security.models.visibility_info import VisibilityInfo
from typing import Optional, Set
@@ -30,14 +31,14 @@ class ConfigurationTemplate(BaseModel):
"""
# Configuration Template Object ### Description The `ConfigurationTemplate` object is used to represent a configuration template. ### Usage Example Returned from the `GET Configuration Templates` endpoint.
""" # noqa: E501
- configuration_template_id: Optional[StrictStr] = Field(default=None, description="The ID of the configuration template.")
+ configuration_template_id: Optional[UUID] = Field(default=None, description="The ID of the configuration template.")
name: Optional[StrictStr] = Field(default=None, description="The name of the configuration template.")
- admin_owner_id: Optional[StrictStr] = Field(default=None, description="The ID of the owner of the configuration template.")
+ admin_owner_id: Optional[UUID] = Field(default=None, description="The ID of the owner of the configuration template.")
visibility: Optional[VisibilityInfo] = Field(default=None, description="The visibility info of the configuration template.")
- linked_audit_message_channel_ids: Optional[List[StrictStr]] = Field(default=None, description="The IDs of the audit message channels linked to the configuration template.")
- request_configuration_id: Optional[StrictStr] = Field(default=None, description="The ID of the request configuration linked to the configuration template.")
- member_oncall_schedule_ids: Optional[List[StrictStr]] = Field(default=None, description="The IDs of the on-call schedules linked to the configuration template.")
- break_glass_user_ids: Optional[List[StrictStr]] = Field(default=None, description="The IDs of the break glass users linked to the configuration template.")
+ linked_audit_message_channel_ids: Optional[List[UUID]] = Field(default=None, description="The IDs of the audit message channels linked to the configuration template.")
+ request_configuration_id: Optional[UUID] = Field(default=None, description="The ID of the request configuration linked to the configuration template.")
+ member_oncall_schedule_ids: Optional[List[UUID]] = Field(default=None, description="The IDs of the on-call schedules linked to the configuration template.")
+ break_glass_user_ids: Optional[List[UUID]] = Field(default=None, description="The IDs of the break glass users linked to the configuration template.")
require_mfa_to_approve: Optional[StrictBool] = Field(default=None, description="A bool representing whether or not to require MFA for reviewers to approve requests for this configuration template.")
require_mfa_to_connect: Optional[StrictBool] = Field(default=None, description="A bool representing whether or not to require MFA to connect to resources associated with this configuration template.")
ticket_propagation: Optional[TicketPropagationConfiguration] = None
diff --git a/opal_security/models/create_configuration_template_info.py b/opal_security/models/create_configuration_template_info.py
index 2f6f6db..a72387b 100644
--- a/opal_security/models/create_configuration_template_info.py
+++ b/opal_security/models/create_configuration_template_info.py
@@ -21,6 +21,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from typing_extensions import Annotated
+from uuid import UUID
from opal_security.models.create_request_configuration_info_list import CreateRequestConfigurationInfoList
from opal_security.models.request_configuration import RequestConfiguration
from opal_security.models.ticket_propagation_configuration import TicketPropagationConfiguration
@@ -32,11 +33,11 @@ class CreateConfigurationTemplateInfo(BaseModel):
"""
# CreateConfigurationTemplateInfo Object ### Description The `CreateConfigurationTemplateInfo` object is used to store creation info for a configuration template. ### Usage Example Use in the `POST Configuration Templates` endpoint.
""" # noqa: E501
- admin_owner_id: StrictStr = Field(description="The ID of the owner of the configuration template.")
+ admin_owner_id: UUID = Field(description="The ID of the owner of the configuration template.")
visibility: VisibilityInfo = Field(description="The visibility info of the configuration template.")
- linked_audit_message_channel_ids: Optional[List[StrictStr]] = Field(default=None, description="The IDs of the audit message channels linked to the configuration template.")
- member_oncall_schedule_ids: Optional[List[StrictStr]] = Field(default=None, description="The IDs of the on-call schedules linked to the configuration template.")
- break_glass_user_ids: Optional[List[StrictStr]] = Field(default=None, description="The IDs of the break glass users linked to the configuration template.")
+ linked_audit_message_channel_ids: Optional[List[UUID]] = Field(default=None, description="The IDs of the audit message channels linked to the configuration template.")
+ member_oncall_schedule_ids: Optional[List[UUID]] = Field(default=None, description="The IDs of the on-call schedules linked to the configuration template.")
+ break_glass_user_ids: Optional[List[UUID]] = Field(default=None, description="The IDs of the break glass users linked to the configuration template.")
require_mfa_to_approve: StrictBool = Field(description="A bool representing whether or not to require MFA for reviewers to approve requests for this configuration template.")
require_mfa_to_connect: StrictBool = Field(description="A bool representing whether or not to require MFA to connect to resources associated with this configuration template.")
name: StrictStr = Field(description="The name of the configuration template.")
diff --git a/opal_security/models/create_delegation_request.py b/opal_security/models/create_delegation_request.py
index e363aa5..1f30c5e 100644
--- a/opal_security/models/create_delegation_request.py
+++ b/opal_security/models/create_delegation_request.py
@@ -21,6 +21,7 @@
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -28,8 +29,8 @@ class CreateDelegationRequest(BaseModel):
"""
Request body for creating a new delegation of access review requests from one user to another.
""" # noqa: E501
- delegator_user_id: StrictStr = Field(description="The ID of the user delegating their access review requests.")
- delegate_user_id: StrictStr = Field(description="The ID of the user being delegated to.")
+ delegator_user_id: UUID = Field(description="The ID of the user delegating their access review requests.")
+ delegate_user_id: UUID = Field(description="The ID of the user being delegated to.")
start_time: datetime = Field(description="The start time of the delegation.")
end_time: datetime = Field(description="The end time of the delegation.")
reason: StrictStr = Field(description="The reason for the delegation.")
diff --git a/opal_security/models/create_group_binding_info.py b/opal_security/models/create_group_binding_info.py
index 96c52ad..0874677 100644
--- a/opal_security/models/create_group_binding_info.py
+++ b/opal_security/models/create_group_binding_info.py
@@ -18,8 +18,9 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List
+from uuid import UUID
from opal_security.models.create_group_binding_info_groups_inner import CreateGroupBindingInfoGroupsInner
from typing import Optional, Set
from typing_extensions import Self
@@ -28,7 +29,7 @@ class CreateGroupBindingInfo(BaseModel):
"""
# CreateGroupBindingInfo Object ### Description The `CreateGroupBindingInfo` object is used as an input to the CreateGroupBinding API.
""" # noqa: E501
- source_group_id: StrictStr = Field(description="The ID of the source group.")
+ source_group_id: UUID = Field(description="The ID of the source group.")
groups: List[CreateGroupBindingInfoGroupsInner] = Field(description="The list of groups.")
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["source_group_id", "groups"]
diff --git a/opal_security/models/create_group_binding_info_groups_inner.py b/opal_security/models/create_group_binding_info_groups_inner.py
index 867e083..4627923 100644
--- a/opal_security/models/create_group_binding_info_groups_inner.py
+++ b/opal_security/models/create_group_binding_info_groups_inner.py
@@ -18,8 +18,9 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -27,7 +28,7 @@ class CreateGroupBindingInfoGroupsInner(BaseModel):
"""
CreateGroupBindingInfoGroupsInner
""" # noqa: E501
- group_id: StrictStr = Field(description="The ID of the group.")
+ group_id: UUID = Field(description="The ID of the group.")
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["group_id"]
diff --git a/opal_security/models/create_group_info.py b/opal_security/models/create_group_info.py
index 4b96429..cd7480a 100644
--- a/opal_security/models/create_group_info.py
+++ b/opal_security/models/create_group_info.py
@@ -21,6 +21,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from typing_extensions import Annotated
+from uuid import UUID
from opal_security.models.group_remote_info import GroupRemoteInfo
from opal_security.models.group_type_enum import GroupTypeEnum
from opal_security.models.risk_sensitivity_enum import RiskSensitivityEnum
@@ -34,7 +35,7 @@ class CreateGroupInfo(BaseModel):
name: StrictStr = Field(description="The name of the remote group.")
description: Optional[StrictStr] = Field(default=None, description="A description of the remote group.")
group_type: GroupTypeEnum
- app_id: StrictStr = Field(description="The ID of the app for the group.")
+ app_id: UUID = Field(description="The ID of the app for the group.")
remote_info: Optional[GroupRemoteInfo] = None
remote_group_id: Optional[StrictStr] = Field(default=None, description="Deprecated - use remote_info instead. The ID of the group on the remote system. Include only for items linked to remote systems. See [this guide](https://docs.opal.dev/reference/end-system-objects) for details on how to specify this field.")
metadata: Optional[StrictStr] = Field(default=None, description="Deprecated - use remote_info instead. JSON metadata about the remote group. Include only for items linked to remote systems. See [this guide](https://docs.opal.dev/reference/end-system-objects) for details on how to specify this field. The required format is dependent on group_type and should have the following schema: ```json { \"$schema\": \"http://json-schema.org/draft-04/schema#\", \"title\": \"Group Metadata\", \"properties\": { \"ad_group\": { \"properties\": { \"object_guid\": { \"type\": \"string\" } }, \"required\": [\"object_guid\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"Active Directory Group\" }, \"duo_group\": { \"properties\": { \"group_id\": { \"type\": \"string\" } }, \"required\": [\"group_id\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"Duo Group\" }, \"git_hub_team\": { \"properties\": { \"org_name\": { \"type\": \"string\" }, \"team_slug\": { \"type\": \"string\" } }, \"required\": [\"org_name\", \"team_slug\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"GitHub Team\" }, \"google_groups_group\": { \"properties\": { \"group_id\": { \"type\": \"string\" } }, \"required\": [\"group_id\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"Google Groups Group\" }, \"ldap_group\": { \"properties\": { \"group_uid\": { \"type\": \"string\" } }, \"required\": [\"group_uid\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"LDAP Group\" }, \"okta_directory_group\": { \"properties\": { \"group_id\": { \"type\": \"string\" } }, \"required\": [\"group_id\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"Okta Directory Group\" } }, \"additionalProperties\": false, \"minProperties\": 1, \"maxProperties\": 1, \"type\": \"object\" } ```")
diff --git a/opal_security/models/create_owner_info.py b/opal_security/models/create_owner_info.py
index a73864d..c130bce 100644
--- a/opal_security/models/create_owner_info.py
+++ b/opal_security/models/create_owner_info.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -30,9 +31,9 @@ class CreateOwnerInfo(BaseModel):
name: StrictStr = Field(description="The name of the owner.")
description: Optional[StrictStr] = Field(default=None, description="A description of the owner.")
access_request_escalation_period: Optional[StrictInt] = Field(default=None, description="The amount of time (in minutes) before the next reviewer is notified. Use 0 to remove escalation policy.")
- user_ids: List[StrictStr] = Field(description="Users to add to the created owner. If setting a source_group_id this list must be empty.")
+ user_ids: List[UUID] = Field(description="Users to add to the created owner. If setting a source_group_id this list must be empty.")
reviewer_message_channel_id: Optional[StrictStr] = Field(default=None, description="The message channel id for the reviewer channel.")
- source_group_id: Optional[StrictStr] = Field(default=None, description="Sync this owner's user list with a source group.")
+ source_group_id: Optional[UUID] = Field(default=None, description="Sync this owner's user list with a source group.")
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["name", "description", "access_request_escalation_period", "user_ids", "reviewer_message_channel_id", "source_group_id"]
diff --git a/opal_security/models/create_request200_response.py b/opal_security/models/create_request200_response.py
index 617f033..86350f0 100644
--- a/opal_security/models/create_request200_response.py
+++ b/opal_security/models/create_request200_response.py
@@ -18,8 +18,9 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -27,7 +28,7 @@ class CreateRequest200Response(BaseModel):
"""
CreateRequest200Response
""" # noqa: E501
- id: Optional[StrictStr] = None
+ id: Optional[UUID] = None
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["id"]
diff --git a/opal_security/models/create_request_info.py b/opal_security/models/create_request_info.py
index efe815e..a004d06 100644
--- a/opal_security/models/create_request_info.py
+++ b/opal_security/models/create_request_info.py
@@ -21,6 +21,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from typing_extensions import Annotated
+from uuid import UUID
from opal_security.models.create_request_info_custom_metadata_inner import CreateRequestInfoCustomMetadataInner
from opal_security.models.create_request_info_groups_inner import CreateRequestInfoGroupsInner
from opal_security.models.create_request_info_resources_inner import CreateRequestInfoResourcesInner
@@ -34,8 +35,8 @@ class CreateRequestInfo(BaseModel):
""" # noqa: E501
resources: List[CreateRequestInfoResourcesInner]
groups: List[CreateRequestInfoGroupsInner]
- target_user_id: Optional[StrictStr] = Field(default=None, description="The ID of the user to be granted access. Should not be specified if target_group_id is specified.")
- target_group_id: Optional[StrictStr] = Field(default=None, description="The ID of the group the request is for. Should not be specified if target_user_id is specified.")
+ target_user_id: Optional[UUID] = Field(default=None, description="The ID of the user to be granted access. Should not be specified if target_group_id is specified.")
+ target_group_id: Optional[UUID] = Field(default=None, description="The ID of the group the request is for. Should not be specified if target_user_id is specified.")
reason: StrictStr
support_ticket: Optional[CreateRequestInfoSupportTicket] = None
duration_minutes: Annotated[int, Field(strict=True, ge=-1)] = Field(description="The duration of the request in minutes. -1 represents an indefinite duration")
diff --git a/opal_security/models/create_request_info_groups_inner.py b/opal_security/models/create_request_info_groups_inner.py
index ce39a98..ddb58b1 100644
--- a/opal_security/models/create_request_info_groups_inner.py
+++ b/opal_security/models/create_request_info_groups_inner.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -27,7 +28,7 @@ class CreateRequestInfoGroupsInner(BaseModel):
"""
CreateRequestInfoGroupsInner
""" # noqa: E501
- id: StrictStr = Field(description="The ID of the group requested. Should not be specified if resource_id is specified.")
+ id: UUID = Field(description="The ID of the group requested. Should not be specified if resource_id is specified.")
access_level_remote_id: Optional[StrictStr] = Field(default=None, description="The ID of the access level requested on the remote system.")
access_level_name: Optional[StrictStr] = Field(default=None, description="The ID of the access level requested on the remote system.")
additional_properties: Dict[str, Any] = {}
diff --git a/opal_security/models/create_request_info_resources_inner.py b/opal_security/models/create_request_info_resources_inner.py
index b992781..9f39f46 100644
--- a/opal_security/models/create_request_info_resources_inner.py
+++ b/opal_security/models/create_request_info_resources_inner.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -27,9 +28,9 @@ class CreateRequestInfoResourcesInner(BaseModel):
"""
CreateRequestInfoResourcesInner
""" # noqa: E501
- id: Optional[StrictStr] = Field(default=None, description="The ID of the resource requested. Should not be specified if group_id is specified.")
+ id: Optional[UUID] = Field(default=None, description="The ID of the resource requested. Should not be specified if group_id is specified.")
access_level_remote_id: Optional[StrictStr] = Field(default=None, description="The ID of the access level requested on the remote system.")
- access_level_name: Optional[StrictStr] = Field(default=None, description="The ID of the access level requested on the remote system.")
+ access_level_name: Optional[StrictStr] = Field(default=None, description="The ID of the access level requested on the remote system. This field is deprecated and no longer required. We will populate based on the access_level_remote_id.")
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["id", "access_level_remote_id", "access_level_name"]
diff --git a/opal_security/models/create_resource_info.py b/opal_security/models/create_resource_info.py
index e96efd5..4d8c535 100644
--- a/opal_security/models/create_resource_info.py
+++ b/opal_security/models/create_resource_info.py
@@ -21,6 +21,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from typing_extensions import Annotated
+from uuid import UUID
from opal_security.models.resource_remote_info import ResourceRemoteInfo
from opal_security.models.resource_type_enum import ResourceTypeEnum
from opal_security.models.risk_sensitivity_enum import RiskSensitivityEnum
@@ -34,7 +35,7 @@ class CreateResourceInfo(BaseModel):
name: StrictStr = Field(description="The name of the remote resource.")
description: Optional[StrictStr] = Field(default=None, description="A description of the remote resource.")
resource_type: ResourceTypeEnum
- app_id: StrictStr = Field(description="The ID of the app for the resource.")
+ app_id: UUID = Field(description="The ID of the app for the resource.")
remote_info: Optional[ResourceRemoteInfo] = None
remote_resource_id: Optional[StrictStr] = Field(default=None, description="Deprecated - use remote_info instead. The ID of the resource on the remote system. Include only for items linked to remote systems. See [this guide](https://docs.opal.dev/reference/end-system-objects) for details on how to specify this field.")
metadata: Optional[StrictStr] = Field(default=None, description="Deprecated - use remote_info instead. JSON metadata about the remote resource. Include only for items linked to remote systems. See [this guide](https://docs.opal.dev/reference/end-system-objects) for details on how to specify this field. The required format is dependent on resource_type and should have the following schema: ```json { \"$schema\": \"http://json-schema.org/draft-04/schema#\", \"title\": \"Resource Metadata\", \"properties\": { \"aws_ec2_instance\": { \"properties\": { \"instance_id\": { \"type\": \"string\" }, \"region\": { \"type\": \"string\" } }, \"required\": [\"instance_id\", \"region\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"AWS EC2 Instance\" }, \"aws_eks_cluster\": { \"properties\": { \"cluster_name\": { \"type\": \"string\" }, \"cluster_region\": { \"type\": \"string\" }, \"cluster_arn\": { \"type\": \"string\" } }, \"required\": [\"cluster_name\", \"cluster_region\", \"cluster_arn\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"AWS EKS Cluster\" }, \"aws_rds_instance\": { \"properties\": { \"instance_id\": { \"type\": \"string\" }, \"engine\": { \"type\": \"string\" }, \"region\": { \"type\": \"string\" }, \"resource_id\": { \"type\": \"string\" }, \"database_name\": { \"type\": \"string\" } }, \"required\": [ \"instance_id\", \"engine\", \"region\", \"resource_id\", \"database_name\" ], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"AWS RDS Instance\" }, \"aws_role\": { \"properties\": { \"arn\": { \"type\": \"string\" }, \"name\": { \"type\": \"string\" } }, \"required\": [\"arn\", \"name\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"AWS Role\" }, \"gcp_bucket\": { \"properties\": { \"bucket_id\": { \"type\": \"string\" } }, \"required\": [\"bucket_id\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"GCP Bucket\" }, \"gcp_compute_instance\": { \"properties\": { \"instance_id\": { \"type\": \"string\" }, \"project_id\": { \"type\": \"string\" }, \"zone\": { \"type\": \"string\" } }, \"required\": [\"instance_id\", \"project_id\", \"zone\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"GCP Compute Instance\" }, \"gcp_folder\": { \"properties\": { \"folder_id\": { \"type\": \"string\" } }, \"required\": [\"folder_id\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"GCP Folder\" }, \"gcp_gke_cluster\": { \"properties\": { \"cluster_name\": { \"type\": \"string\" } }, \"required\": [\"cluster_name\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"GCP GKE Cluster\" }, \"gcp_project\": { \"properties\": { \"project_id\": { \"type\": \"string\" } }, \"required\": [\"project_id\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"GCP Project\" }, \"gcp_sql_instance\": { \"properties\": { \"instance_id\": { \"type\": \"string\" }, \"project_id\": { \"type\": \"string\" } }, \"required\": [\"instance_id\", \"project_id\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"GCP SQL Instance\" }, \"git_hub_repo\": { \"properties\": { \"org_name\": { \"type\": \"string\" }, \"repo_name\": { \"type\": \"string\" } }, \"required\": [\"org_name\", \"repo_name\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"GitHub Repo\" }, \"okta_directory_app\": { \"properties\": { \"app_id\": { \"type\": \"string\" }, \"logo_url\": { \"type\": \"string\" } }, \"required\": [\"app_id\", \"logo_url\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"Okta Directory App\" }, \"okta_directory_role\": { \"properties\": { \"role_type\": { \"type\": \"string\" }, \"role_id\": { \"type\": \"string\" } }, \"required\": [\"role_type\", \"role_id\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"Okta Directory Role\" }, \"salesforce_profile\": { \"properties\": { \"user_license\": { \"type\": \"string\" } }, \"required\": [\"user_license\"], \"additionalProperties\": false, \"type\": \"object\", \"title\": \"Salesforce Profile\" } }, \"additionalProperties\": false, \"minProperties\": 1, \"maxProperties\": 1, \"type\": \"object\" } ```")
diff --git a/opal_security/models/create_uar_info.py b/opal_security/models/create_uar_info.py
index 421704e..c58ec86 100644
--- a/opal_security/models/create_uar_info.py
+++ b/opal_security/models/create_uar_info.py
@@ -36,11 +36,12 @@ class CreateUARInfo(BaseModel):
deadline: datetime = Field(description="The last day for reviewers to complete their access reviews.")
time_zone: StrictStr = Field(description="The time zone name (as defined by the IANA Time Zone database) used in the access review deadline and exported audit report. Default is America/Los_Angeles.")
self_review_allowed: StrictBool = Field(description="A bool representing whether to present a warning when a user is the only reviewer for themself. Default is False.")
+ instantly_action_reviews: Optional[StrictBool] = Field(default=None, description="A bool representing whether to instantly action changes when reviewers submit their decision. Default is False.")
reminder_schedule: Optional[List[StrictInt]] = None
reminder_include_manager: Optional[StrictBool] = None
uar_scope: Optional[UARScope] = None
additional_properties: Dict[str, Any] = {}
- __properties: ClassVar[List[str]] = ["name", "reviewer_assignment_policy", "send_reviewer_assignment_notification", "deadline", "time_zone", "self_review_allowed", "reminder_schedule", "reminder_include_manager", "uar_scope"]
+ __properties: ClassVar[List[str]] = ["name", "reviewer_assignment_policy", "send_reviewer_assignment_notification", "deadline", "time_zone", "self_review_allowed", "instantly_action_reviews", "reminder_schedule", "reminder_include_manager", "uar_scope"]
model_config = ConfigDict(
populate_by_name=True,
@@ -109,6 +110,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"deadline": obj.get("deadline"),
"time_zone": obj.get("time_zone"),
"self_review_allowed": obj.get("self_review_allowed"),
+ "instantly_action_reviews": obj.get("instantly_action_reviews"),
"reminder_schedule": obj.get("reminder_schedule"),
"reminder_include_manager": obj.get("reminder_include_manager"),
"uar_scope": UARScope.from_dict(obj["uar_scope"]) if obj.get("uar_scope") is not None else None
diff --git a/opal_security/models/delegation.py b/opal_security/models/delegation.py
index 91aed12..c4dede3 100644
--- a/opal_security/models/delegation.py
+++ b/opal_security/models/delegation.py
@@ -21,6 +21,7 @@
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -28,9 +29,9 @@ class Delegation(BaseModel):
"""
# Delegation Object ### Description The `Delegation` object represents a delegation of access review requests from one user to another. ### Usage Example List from the `GET Delegations` endpoint. Get from the `GET Delegation` endpoint.
""" # noqa: E501
- id: StrictStr = Field(description="The ID of the delegation.")
- delegator_user_id: StrictStr = Field(description="The ID of the user delegating their access review requests.")
- delegate_user_id: StrictStr = Field(description="The ID of the user being delegated to.")
+ id: UUID = Field(description="The ID of the delegation.")
+ delegator_user_id: UUID = Field(description="The ID of the user delegating their access review requests.")
+ delegate_user_id: UUID = Field(description="The ID of the user being delegated to.")
start_time: datetime = Field(description="The start time of the delegation.")
end_time: datetime = Field(description="The end time of the delegation.")
reason: StrictStr = Field(description="The reason for the delegation.")
diff --git a/opal_security/models/event.py b/opal_security/models/event.py
index 9b4924b..f9d0ba9 100644
--- a/opal_security/models/event.py
+++ b/opal_security/models/event.py
@@ -21,6 +21,7 @@
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from opal_security.models.sub_event import SubEvent
from typing import Optional, Set
from typing_extensions import Self
@@ -29,8 +30,8 @@ class Event(BaseModel):
"""
# Event Object ### Description The `Event` object is used to represent an event. ### Usage Example Fetch from the `LIST Events` endpoint.
""" # noqa: E501
- event_id: StrictStr = Field(description="The ID of the event.")
- actor_user_id: StrictStr = Field(description="The ID of the actor user.")
+ event_id: UUID = Field(description="The ID of the event.")
+ actor_user_id: UUID = Field(description="The ID of the actor user.")
actor_name: Optional[Any]
actor_email: Optional[StrictStr] = Field(default=None, description="The email of the actor user.")
event_type: StrictStr = Field(description="The event type.")
diff --git a/opal_security/models/group.py b/opal_security/models/group.py
index 4e20d56..9e734d1 100644
--- a/opal_security/models/group.py
+++ b/opal_security/models/group.py
@@ -21,6 +21,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from typing_extensions import Annotated
+from uuid import UUID
from opal_security.models.group_remote_info import GroupRemoteInfo
from opal_security.models.group_type_enum import GroupTypeEnum
from opal_security.models.request_configuration import RequestConfiguration
@@ -33,12 +34,12 @@ class Group(BaseModel):
"""
# Group Object ### Description The `Group` object is used to represent a group. ### Usage Example Update from the `UPDATE Groups` endpoint.
""" # noqa: E501
- group_id: StrictStr = Field(description="The ID of the group.")
- app_id: Optional[StrictStr] = Field(default=None, description="The ID of the group's app.")
+ group_id: UUID = Field(description="The ID of the group.")
+ app_id: Optional[UUID] = Field(default=None, description="The ID of the group's app.")
name: Optional[StrictStr] = Field(default=None, description="The name of the group.")
description: Optional[StrictStr] = Field(default=None, description="A description of the group.")
- admin_owner_id: Optional[StrictStr] = Field(default=None, description="The ID of the owner of the group.")
- group_leader_user_ids: Optional[List[StrictStr]] = Field(default=None, description="A list of User IDs for the group leaders of the group")
+ admin_owner_id: Optional[UUID] = Field(default=None, description="The ID of the owner of the group.")
+ group_leader_user_ids: Optional[List[UUID]] = Field(default=None, description="A list of User IDs for the group leaders of the group")
remote_id: Optional[StrictStr] = Field(default=None, description="The ID of the remote.")
remote_name: Optional[StrictStr] = Field(default=None, description="The name of the remote.")
group_type: Optional[GroupTypeEnum] = None
@@ -50,9 +51,9 @@ class Group(BaseModel):
require_mfa_to_approve: Optional[StrictBool] = Field(default=None, description="A bool representing whether or not to require MFA for reviewers to approve requests for this group.")
require_mfa_to_request: Optional[StrictBool] = Field(default=None, description="A bool representing whether or not to require MFA for requesting access to this group.")
auto_approval: Optional[StrictBool] = Field(default=None, description="A bool representing whether or not to automatically approve requests to this group.")
- request_template_id: Optional[StrictStr] = Field(default=None, description="The ID of the associated request template.")
- configuration_template_id: Optional[StrictStr] = Field(default=None, description="The ID of the associated configuration template.")
- group_binding_id: Optional[StrictStr] = Field(default=None, description="The ID of the associated group binding.")
+ request_template_id: Optional[UUID] = Field(default=None, description="The ID of the associated request template.")
+ configuration_template_id: Optional[UUID] = Field(default=None, description="The ID of the associated configuration template.")
+ group_binding_id: Optional[UUID] = Field(default=None, description="The ID of the associated group binding.")
is_requestable: Optional[StrictBool] = Field(default=None, description="A bool representing whether or not to allow access requests to this group.")
request_configurations: Optional[List[RequestConfiguration]] = Field(default=None, description="A list of request configurations for this group.")
request_configuration_list: Optional[List[RequestConfiguration]] = Field(default=None, description="A list of request configurations for this group. Deprecated in favor of `request_configurations`.")
diff --git a/opal_security/models/group_binding.py b/opal_security/models/group_binding.py
index b52049c..5443a1f 100644
--- a/opal_security/models/group_binding.py
+++ b/opal_security/models/group_binding.py
@@ -19,8 +19,9 @@
import json
from datetime import datetime
-from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List
+from uuid import UUID
from opal_security.models.group_binding_group import GroupBindingGroup
from typing import Optional, Set
from typing_extensions import Self
@@ -29,10 +30,10 @@ class GroupBinding(BaseModel):
"""
# Group Binding Object ### Description The `GroupBinding` object is used to represent a group binding. ### Usage Example Get group bindings from the `GET Group Bindings` endpoint.
""" # noqa: E501
- group_binding_id: StrictStr = Field(description="The ID of the group binding.")
- created_by_id: StrictStr = Field(description="The ID of the user that created the group binding.")
+ group_binding_id: UUID = Field(description="The ID of the group binding.")
+ created_by_id: UUID = Field(description="The ID of the user that created the group binding.")
created_at: datetime = Field(description="The date the group binding was created.")
- source_group_id: StrictStr = Field(description="The ID of the source group.")
+ source_group_id: UUID = Field(description="The ID of the source group.")
groups: List[GroupBindingGroup] = Field(description="The list of groups.")
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["group_binding_id", "created_by_id", "created_at", "source_group_id", "groups"]
diff --git a/opal_security/models/group_binding_group.py b/opal_security/models/group_binding_group.py
index 3ec3eba..020af15 100644
--- a/opal_security/models/group_binding_group.py
+++ b/opal_security/models/group_binding_group.py
@@ -18,8 +18,9 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List
+from uuid import UUID
from opal_security.models.group_type_enum import GroupTypeEnum
from typing import Optional, Set
from typing_extensions import Self
@@ -28,7 +29,7 @@ class GroupBindingGroup(BaseModel):
"""
# Group Binding Group Object ### Description The `GroupBindingGroup` object is used to represent a group binding group. ### Usage Example Get group binding groups from the `GET Group Bindings` endpoint.
""" # noqa: E501
- group_id: StrictStr = Field(description="The ID of the group.")
+ group_id: UUID = Field(description="The ID of the group.")
group_type: GroupTypeEnum
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["group_id", "group_type"]
diff --git a/opal_security/models/group_containing_group.py b/opal_security/models/group_containing_group.py
index 07c62c8..a2e48e1 100644
--- a/opal_security/models/group_containing_group.py
+++ b/opal_security/models/group_containing_group.py
@@ -19,7 +19,9 @@
import json
from pydantic import BaseModel, ConfigDict, Field, StrictStr
-from typing import Any, ClassVar, Dict, List
+from typing import Any, ClassVar, Dict, List, Optional
+from typing_extensions import Annotated
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -27,9 +29,11 @@ class GroupContainingGroup(BaseModel):
"""
# GroupContainingGroup Object ### Description The `GroupContainingGroup` object is used to represent a relationship between a group and a group.
""" # noqa: E501
- containing_group_id: StrictStr = Field(description="The groupID of the containing group.")
+ containing_group_id: UUID = Field(description="The groupID of the containing group.")
+ duration_minutes: Optional[Annotated[int, Field(le=525960, strict=True)]] = Field(default=None, description="The updated duration for which the group can be accessed (in minutes). Use 0 for indefinite.")
+ access_level_remote_id: Optional[StrictStr] = Field(default=None, description="The updated remote ID of the access level granted to this group.")
additional_properties: Dict[str, Any] = {}
- __properties: ClassVar[List[str]] = ["containing_group_id"]
+ __properties: ClassVar[List[str]] = ["containing_group_id", "duration_minutes", "access_level_remote_id"]
model_config = ConfigDict(
populate_by_name=True,
@@ -89,7 +93,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
return cls.model_validate(obj)
_obj = cls.model_validate({
- "containing_group_id": obj.get("containing_group_id")
+ "containing_group_id": obj.get("containing_group_id"),
+ "duration_minutes": obj.get("duration_minutes"),
+ "access_level_remote_id": obj.get("access_level_remote_id")
})
# store additional fields in additional_properties
for _key in obj.keys():
diff --git a/opal_security/models/group_remote_info.py b/opal_security/models/group_remote_info.py
index 1102486..6ed5420 100644
--- a/opal_security/models/group_remote_info.py
+++ b/opal_security/models/group_remote_info.py
@@ -21,16 +21,24 @@
from pydantic import BaseModel, ConfigDict
from typing import Any, ClassVar, Dict, List, Optional
from opal_security.models.group_remote_info_active_directory_group import GroupRemoteInfoActiveDirectoryGroup
+from opal_security.models.group_remote_info_aws_sso_group import GroupRemoteInfoAwsSsoGroup
from opal_security.models.group_remote_info_azure_ad_microsoft365_group import GroupRemoteInfoAzureAdMicrosoft365Group
from opal_security.models.group_remote_info_azure_ad_security_group import GroupRemoteInfoAzureAdSecurityGroup
+from opal_security.models.group_remote_info_connector_group import GroupRemoteInfoConnectorGroup
+from opal_security.models.group_remote_info_databricks_account_group import GroupRemoteInfoDatabricksAccountGroup
+from opal_security.models.group_remote_info_devin_group import GroupRemoteInfoDevinGroup
from opal_security.models.group_remote_info_duo_group import GroupRemoteInfoDuoGroup
from opal_security.models.group_remote_info_github_team import GroupRemoteInfoGithubTeam
from opal_security.models.group_remote_info_gitlab_group import GroupRemoteInfoGitlabGroup
from opal_security.models.group_remote_info_google_group import GroupRemoteInfoGoogleGroup
+from opal_security.models.group_remote_info_incidentio_on_call_schedule import GroupRemoteInfoIncidentioOnCallSchedule
from opal_security.models.group_remote_info_ldap_group import GroupRemoteInfoLdapGroup
from opal_security.models.group_remote_info_okta_group import GroupRemoteInfoOktaGroup
from opal_security.models.group_remote_info_okta_group_rule import GroupRemoteInfoOktaGroupRule
+from opal_security.models.group_remote_info_pagerduty_on_call_schedule import GroupRemoteInfoPagerdutyOnCallSchedule
+from opal_security.models.group_remote_info_rootly_on_call_schedule import GroupRemoteInfoRootlyOnCallSchedule
from opal_security.models.group_remote_info_snowflake_role import GroupRemoteInfoSnowflakeRole
+from opal_security.models.group_remote_info_tailscale_group import GroupRemoteInfoTailscaleGroup
from opal_security.models.group_remote_info_workday_user_security_group import GroupRemoteInfoWorkdayUserSecurityGroup
from typing import Optional, Set
from typing_extensions import Self
@@ -40,6 +48,10 @@ class GroupRemoteInfo(BaseModel):
Information that defines the remote group. This replaces the deprecated remote_id and metadata fields. If remote_info is provided, a group will be imported into Opal. For group types that support group creation through Opal, a new group will be created if remote_info is not provided.
""" # noqa: E501
active_directory_group: Optional[GroupRemoteInfoActiveDirectoryGroup] = None
+ tailscale_group: Optional[GroupRemoteInfoTailscaleGroup] = None
+ aws_sso_group: Optional[GroupRemoteInfoAwsSsoGroup] = None
+ databricks_account_group: Optional[GroupRemoteInfoDatabricksAccountGroup] = None
+ connector_group: Optional[GroupRemoteInfoConnectorGroup] = None
github_team: Optional[GroupRemoteInfoGithubTeam] = None
gitlab_group: Optional[GroupRemoteInfoGitlabGroup] = None
google_group: Optional[GroupRemoteInfoGoogleGroup] = None
@@ -51,8 +63,12 @@ class GroupRemoteInfo(BaseModel):
snowflake_role: Optional[GroupRemoteInfoSnowflakeRole] = None
okta_group_rule: Optional[GroupRemoteInfoOktaGroupRule] = None
workday_user_security_group: Optional[GroupRemoteInfoWorkdayUserSecurityGroup] = None
+ pagerduty_on_call_schedule: Optional[GroupRemoteInfoPagerdutyOnCallSchedule] = None
+ incidentio_on_call_schedule: Optional[GroupRemoteInfoIncidentioOnCallSchedule] = None
+ rootly_on_call_schedule: Optional[GroupRemoteInfoRootlyOnCallSchedule] = None
+ devin_group: Optional[GroupRemoteInfoDevinGroup] = None
additional_properties: Dict[str, Any] = {}
- __properties: ClassVar[List[str]] = ["active_directory_group", "github_team", "gitlab_group", "google_group", "ldap_group", "okta_group", "duo_group", "azure_ad_security_group", "azure_ad_microsoft_365_group", "snowflake_role", "okta_group_rule", "workday_user_security_group"]
+ __properties: ClassVar[List[str]] = ["active_directory_group", "tailscale_group", "aws_sso_group", "databricks_account_group", "connector_group", "github_team", "gitlab_group", "google_group", "ldap_group", "okta_group", "duo_group", "azure_ad_security_group", "azure_ad_microsoft_365_group", "snowflake_role", "okta_group_rule", "workday_user_security_group", "pagerduty_on_call_schedule", "incidentio_on_call_schedule", "rootly_on_call_schedule", "devin_group"]
model_config = ConfigDict(
populate_by_name=True,
@@ -98,6 +114,18 @@ def to_dict(self) -> Dict[str, Any]:
# override the default output from pydantic by calling `to_dict()` of active_directory_group
if self.active_directory_group:
_dict['active_directory_group'] = self.active_directory_group.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of tailscale_group
+ if self.tailscale_group:
+ _dict['tailscale_group'] = self.tailscale_group.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of aws_sso_group
+ if self.aws_sso_group:
+ _dict['aws_sso_group'] = self.aws_sso_group.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of databricks_account_group
+ if self.databricks_account_group:
+ _dict['databricks_account_group'] = self.databricks_account_group.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of connector_group
+ if self.connector_group:
+ _dict['connector_group'] = self.connector_group.to_dict()
# override the default output from pydantic by calling `to_dict()` of github_team
if self.github_team:
_dict['github_team'] = self.github_team.to_dict()
@@ -131,6 +159,18 @@ def to_dict(self) -> Dict[str, Any]:
# override the default output from pydantic by calling `to_dict()` of workday_user_security_group
if self.workday_user_security_group:
_dict['workday_user_security_group'] = self.workday_user_security_group.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of pagerduty_on_call_schedule
+ if self.pagerduty_on_call_schedule:
+ _dict['pagerduty_on_call_schedule'] = self.pagerduty_on_call_schedule.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of incidentio_on_call_schedule
+ if self.incidentio_on_call_schedule:
+ _dict['incidentio_on_call_schedule'] = self.incidentio_on_call_schedule.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of rootly_on_call_schedule
+ if self.rootly_on_call_schedule:
+ _dict['rootly_on_call_schedule'] = self.rootly_on_call_schedule.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of devin_group
+ if self.devin_group:
+ _dict['devin_group'] = self.devin_group.to_dict()
# puts key-value pairs in additional_properties in the top level
if self.additional_properties is not None:
for _key, _value in self.additional_properties.items():
@@ -149,6 +189,10 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
_obj = cls.model_validate({
"active_directory_group": GroupRemoteInfoActiveDirectoryGroup.from_dict(obj["active_directory_group"]) if obj.get("active_directory_group") is not None else None,
+ "tailscale_group": GroupRemoteInfoTailscaleGroup.from_dict(obj["tailscale_group"]) if obj.get("tailscale_group") is not None else None,
+ "aws_sso_group": GroupRemoteInfoAwsSsoGroup.from_dict(obj["aws_sso_group"]) if obj.get("aws_sso_group") is not None else None,
+ "databricks_account_group": GroupRemoteInfoDatabricksAccountGroup.from_dict(obj["databricks_account_group"]) if obj.get("databricks_account_group") is not None else None,
+ "connector_group": GroupRemoteInfoConnectorGroup.from_dict(obj["connector_group"]) if obj.get("connector_group") is not None else None,
"github_team": GroupRemoteInfoGithubTeam.from_dict(obj["github_team"]) if obj.get("github_team") is not None else None,
"gitlab_group": GroupRemoteInfoGitlabGroup.from_dict(obj["gitlab_group"]) if obj.get("gitlab_group") is not None else None,
"google_group": GroupRemoteInfoGoogleGroup.from_dict(obj["google_group"]) if obj.get("google_group") is not None else None,
@@ -159,7 +203,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"azure_ad_microsoft_365_group": GroupRemoteInfoAzureAdMicrosoft365Group.from_dict(obj["azure_ad_microsoft_365_group"]) if obj.get("azure_ad_microsoft_365_group") is not None else None,
"snowflake_role": GroupRemoteInfoSnowflakeRole.from_dict(obj["snowflake_role"]) if obj.get("snowflake_role") is not None else None,
"okta_group_rule": GroupRemoteInfoOktaGroupRule.from_dict(obj["okta_group_rule"]) if obj.get("okta_group_rule") is not None else None,
- "workday_user_security_group": GroupRemoteInfoWorkdayUserSecurityGroup.from_dict(obj["workday_user_security_group"]) if obj.get("workday_user_security_group") is not None else None
+ "workday_user_security_group": GroupRemoteInfoWorkdayUserSecurityGroup.from_dict(obj["workday_user_security_group"]) if obj.get("workday_user_security_group") is not None else None,
+ "pagerduty_on_call_schedule": GroupRemoteInfoPagerdutyOnCallSchedule.from_dict(obj["pagerduty_on_call_schedule"]) if obj.get("pagerduty_on_call_schedule") is not None else None,
+ "incidentio_on_call_schedule": GroupRemoteInfoIncidentioOnCallSchedule.from_dict(obj["incidentio_on_call_schedule"]) if obj.get("incidentio_on_call_schedule") is not None else None,
+ "rootly_on_call_schedule": GroupRemoteInfoRootlyOnCallSchedule.from_dict(obj["rootly_on_call_schedule"]) if obj.get("rootly_on_call_schedule") is not None else None,
+ "devin_group": GroupRemoteInfoDevinGroup.from_dict(obj["devin_group"]) if obj.get("devin_group") is not None else None
})
# store additional fields in additional_properties
for _key in obj.keys():
diff --git a/opal_security/models/group_remote_info_aws_sso_group.py b/opal_security/models/group_remote_info_aws_sso_group.py
new file mode 100644
index 0000000..1892add
--- /dev/null
+++ b/opal_security/models/group_remote_info_aws_sso_group.py
@@ -0,0 +1,101 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class GroupRemoteInfoAwsSsoGroup(BaseModel):
+ """
+ Remote info for AWS SSO group.
+ """ # noqa: E501
+ group_id: StrictStr = Field(description="The id of the AWS SSO group.")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["group_id"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of GroupRemoteInfoAwsSsoGroup from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of GroupRemoteInfoAwsSsoGroup from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "group_id": obj.get("group_id")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/opal_security/models/group_remote_info_connector_group.py b/opal_security/models/group_remote_info_connector_group.py
new file mode 100644
index 0000000..6d6b0be
--- /dev/null
+++ b/opal_security/models/group_remote_info_connector_group.py
@@ -0,0 +1,101 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class GroupRemoteInfoConnectorGroup(BaseModel):
+ """
+ Remote info for Connector group.
+ """ # noqa: E501
+ group_id: StrictStr = Field(description="The id of the Connector group.")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["group_id"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of GroupRemoteInfoConnectorGroup from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of GroupRemoteInfoConnectorGroup from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "group_id": obj.get("group_id")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/opal_security/models/group_remote_info_databricks_account_group.py b/opal_security/models/group_remote_info_databricks_account_group.py
new file mode 100644
index 0000000..1c6950b
--- /dev/null
+++ b/opal_security/models/group_remote_info_databricks_account_group.py
@@ -0,0 +1,101 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class GroupRemoteInfoDatabricksAccountGroup(BaseModel):
+ """
+ Remote info for Databricks account group.
+ """ # noqa: E501
+ group_id: StrictStr = Field(description="The id of the Databricks account group.")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["group_id"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of GroupRemoteInfoDatabricksAccountGroup from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of GroupRemoteInfoDatabricksAccountGroup from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "group_id": obj.get("group_id")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/opal_security/models/group_remote_info_devin_group.py b/opal_security/models/group_remote_info_devin_group.py
new file mode 100644
index 0000000..ac183e5
--- /dev/null
+++ b/opal_security/models/group_remote_info_devin_group.py
@@ -0,0 +1,101 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class GroupRemoteInfoDevinGroup(BaseModel):
+ """
+ Remote info for Devin group.
+ """ # noqa: E501
+ group_name: StrictStr = Field(description="The name of the Devin group.")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["group_name"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of GroupRemoteInfoDevinGroup from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of GroupRemoteInfoDevinGroup from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "group_name": obj.get("group_name")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/opal_security/models/group_remote_info_incidentio_on_call_schedule.py b/opal_security/models/group_remote_info_incidentio_on_call_schedule.py
new file mode 100644
index 0000000..55019ce
--- /dev/null
+++ b/opal_security/models/group_remote_info_incidentio_on_call_schedule.py
@@ -0,0 +1,101 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class GroupRemoteInfoIncidentioOnCallSchedule(BaseModel):
+ """
+ Remote info for Incident.io on-call schedule group.
+ """ # noqa: E501
+ schedule_id: StrictStr = Field(description="The id of the Incident.io on-call schedule.")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["schedule_id"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of GroupRemoteInfoIncidentioOnCallSchedule from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of GroupRemoteInfoIncidentioOnCallSchedule from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "schedule_id": obj.get("schedule_id")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/opal_security/models/group_remote_info_pagerduty_on_call_schedule.py b/opal_security/models/group_remote_info_pagerduty_on_call_schedule.py
new file mode 100644
index 0000000..863d8ba
--- /dev/null
+++ b/opal_security/models/group_remote_info_pagerduty_on_call_schedule.py
@@ -0,0 +1,101 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class GroupRemoteInfoPagerdutyOnCallSchedule(BaseModel):
+ """
+ Remote info for PagerDuty on-call schedule group.
+ """ # noqa: E501
+ schedule_id: StrictStr = Field(description="The id of the PagerDuty on-call schedule.")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["schedule_id"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of GroupRemoteInfoPagerdutyOnCallSchedule from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of GroupRemoteInfoPagerdutyOnCallSchedule from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "schedule_id": obj.get("schedule_id")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/opal_security/models/group_remote_info_rootly_on_call_schedule.py b/opal_security/models/group_remote_info_rootly_on_call_schedule.py
new file mode 100644
index 0000000..a000006
--- /dev/null
+++ b/opal_security/models/group_remote_info_rootly_on_call_schedule.py
@@ -0,0 +1,101 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class GroupRemoteInfoRootlyOnCallSchedule(BaseModel):
+ """
+ Remote info for Rootly on-call schedule group.
+ """ # noqa: E501
+ schedule_id: StrictStr = Field(description="The id of the Rootly on-call schedule.")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["schedule_id"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of GroupRemoteInfoRootlyOnCallSchedule from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of GroupRemoteInfoRootlyOnCallSchedule from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "schedule_id": obj.get("schedule_id")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/opal_security/models/group_remote_info_tailscale_group.py b/opal_security/models/group_remote_info_tailscale_group.py
new file mode 100644
index 0000000..020bd43
--- /dev/null
+++ b/opal_security/models/group_remote_info_tailscale_group.py
@@ -0,0 +1,101 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class GroupRemoteInfoTailscaleGroup(BaseModel):
+ """
+ Remote info for Tailscale group.
+ """ # noqa: E501
+ group_id: StrictStr = Field(description="The id of the Tailscale group.")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["group_id"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of GroupRemoteInfoTailscaleGroup from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of GroupRemoteInfoTailscaleGroup from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "group_id": obj.get("group_id")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/opal_security/models/group_resource.py b/opal_security/models/group_resource.py
index bbcebe9..a0d9ed4 100644
--- a/opal_security/models/group_resource.py
+++ b/opal_security/models/group_resource.py
@@ -18,8 +18,10 @@
import re # noqa: F401
import json
+from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictStr
-from typing import Any, ClassVar, Dict, List
+from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from opal_security.models.resource_access_level import ResourceAccessLevel
from typing import Optional, Set
from typing_extensions import Self
@@ -28,11 +30,14 @@ class GroupResource(BaseModel):
"""
# GroupResource Object ### Description The `GroupResource` object is used to represent a relationship between a group and a resource.
""" # noqa: E501
- group_id: StrictStr = Field(description="The ID of the group.")
- resource_id: StrictStr = Field(description="The ID of the resource.")
+ group_id: UUID = Field(description="The ID of the group.")
+ resource_id: UUID = Field(description="The ID of the resource.")
+ group_name: Optional[StrictStr] = Field(default=None, description="The name of the group")
+ resource_name: Optional[StrictStr] = Field(default=None, description="The name of the resource")
+ expiration_date: Optional[datetime] = Field(default=None, description="The day and time the group's access will expire.")
access_level: ResourceAccessLevel
additional_properties: Dict[str, Any] = {}
- __properties: ClassVar[List[str]] = ["group_id", "resource_id", "access_level"]
+ __properties: ClassVar[List[str]] = ["group_id", "resource_id", "group_name", "resource_name", "expiration_date", "access_level"]
model_config = ConfigDict(
populate_by_name=True,
@@ -97,6 +102,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
_obj = cls.model_validate({
"group_id": obj.get("group_id"),
"resource_id": obj.get("resource_id"),
+ "group_name": obj.get("group_name"),
+ "resource_name": obj.get("resource_name"),
+ "expiration_date": obj.get("expiration_date"),
"access_level": ResourceAccessLevel.from_dict(obj["access_level"]) if obj.get("access_level") is not None else None
})
# store additional fields in additional_properties
diff --git a/opal_security/models/group_type_enum.py b/opal_security/models/group_type_enum.py
index 84916a9..bef4539 100644
--- a/opal_security/models/group_type_enum.py
+++ b/opal_security/models/group_type_enum.py
@@ -46,6 +46,10 @@ class GroupTypeEnum(str, Enum):
CONNECTOR_GROUP = 'CONNECTOR_GROUP'
SNOWFLAKE_ROLE = 'SNOWFLAKE_ROLE'
WORKDAY_USER_SECURITY_GROUP = 'WORKDAY_USER_SECURITY_GROUP'
+ PAGERDUTY_ON_CALL_SCHEDULE = 'PAGERDUTY_ON_CALL_SCHEDULE'
+ INCIDENTIO_ON_CALL_SCHEDULE = 'INCIDENTIO_ON_CALL_SCHEDULE'
+ ROOTLY_ON_CALL_SCHEDULE = 'ROOTLY_ON_CALL_SCHEDULE'
+ DEVIN_GROUP = 'DEVIN_GROUP'
@classmethod
def from_json(cls, json_str: str) -> Self:
diff --git a/opal_security/models/group_user.py b/opal_security/models/group_user.py
index 9158fb3..d7344ba 100644
--- a/opal_security/models/group_user.py
+++ b/opal_security/models/group_user.py
@@ -21,6 +21,7 @@
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from opal_security.models.group_access_level import GroupAccessLevel
from opal_security.models.propagation_status import PropagationStatus
from typing import Optional, Set
@@ -30,10 +31,10 @@ class GroupUser(BaseModel):
"""
# Group Access User Object ### Description The `GroupAccessUser` object is used to represent a user with access to a group. ### Usage Example Fetch from the `LIST GroupUsers` endpoint.
""" # noqa: E501
- group_id: StrictStr = Field(description="The ID of the group.")
+ group_id: UUID = Field(description="The ID of the group.")
group_name: StrictStr = Field(description="The name of the group.")
description: StrictStr = Field(description="The description of the group.")
- user_id: StrictStr = Field(description="The ID of the user.")
+ user_id: UUID = Field(description="The ID of the user.")
access_level: Optional[GroupAccessLevel] = None
full_name: StrictStr = Field(description="The user's full name.")
email: StrictStr = Field(description="The user's email.")
diff --git a/opal_security/models/group_with_access_level.py b/opal_security/models/group_with_access_level.py
index fcd4df8..ead9999 100644
--- a/opal_security/models/group_with_access_level.py
+++ b/opal_security/models/group_with_access_level.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -27,7 +28,7 @@ class GroupWithAccessLevel(BaseModel):
"""
Information about a group and corresponding access level
""" # noqa: E501
- group_id: StrictStr = Field(description="The ID of the group.")
+ group_id: UUID = Field(description="The ID of the group.")
access_level_remote_id: Optional[StrictStr] = Field(default=None, description="The ID of the resource.")
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["group_id", "access_level_remote_id"]
diff --git a/opal_security/models/idp_group_mapping.py b/opal_security/models/idp_group_mapping.py
index 06d1a3f..089247d 100644
--- a/opal_security/models/idp_group_mapping.py
+++ b/opal_security/models/idp_group_mapping.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -27,8 +28,8 @@ class IdpGroupMapping(BaseModel):
"""
Information about a group mapping.
""" # noqa: E501
- app_resource_id: Optional[StrictStr] = Field(default=None, description="The ID of the app resource.")
- group_id: StrictStr = Field(description="The ID of the group.")
+ app_resource_id: Optional[UUID] = Field(default=None, description="The ID of the app resource.")
+ group_id: UUID = Field(description="The ID of the group.")
alias: Optional[StrictStr] = Field(default=None, description="The alias of the group.")
hidden_from_end_user: StrictBool = Field(description="A bool representing whether or not the group is hidden from the end user.")
additional_properties: Dict[str, Any] = {}
diff --git a/opal_security/models/message_channel.py b/opal_security/models/message_channel.py
index 3690497..82be0c7 100644
--- a/opal_security/models/message_channel.py
+++ b/opal_security/models/message_channel.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from opal_security.models.message_channel_provider_enum import MessageChannelProviderEnum
from typing import Optional, Set
from typing_extensions import Self
@@ -28,7 +29,7 @@ class MessageChannel(BaseModel):
"""
# MessageChannel Object ### Description The `MessageChannel` object is used to represent a message channel. ### Usage Example Update a groups message channel from the `UPDATE Groups` endpoint.
""" # noqa: E501
- message_channel_id: StrictStr = Field(description="The ID of the message channel.")
+ message_channel_id: UUID = Field(description="The ID of the message channel.")
third_party_provider: Optional[MessageChannelProviderEnum] = None
remote_id: Optional[StrictStr] = Field(default=None, description="The remote ID of the message channel")
name: Optional[StrictStr] = Field(default=None, description="The name of the message channel.")
diff --git a/opal_security/models/message_channel_id_list.py b/opal_security/models/message_channel_id_list.py
index 8a33434..7603734 100644
--- a/opal_security/models/message_channel_id_list.py
+++ b/opal_security/models/message_channel_id_list.py
@@ -18,8 +18,9 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
from typing import Any, ClassVar, Dict, List
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -27,7 +28,7 @@ class MessageChannelIDList(BaseModel):
"""
A list of message channel IDs.
""" # noqa: E501
- message_channel_ids: List[StrictStr]
+ message_channel_ids: List[UUID]
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["message_channel_ids"]
diff --git a/opal_security/models/on_call_schedule.py b/opal_security/models/on_call_schedule.py
index 088f7ca..a7e777e 100644
--- a/opal_security/models/on_call_schedule.py
+++ b/opal_security/models/on_call_schedule.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from opal_security.models.on_call_schedule_provider_enum import OnCallScheduleProviderEnum
from typing import Optional, Set
from typing_extensions import Self
@@ -28,7 +29,7 @@ class OnCallSchedule(BaseModel):
"""
# OnCallSchedule Object ### Description The `OnCallSchedule` object is used to represent an on call schedule. ### Usage Example Update a groups on call schedule from the `UPDATE Groups` endpoint.
""" # noqa: E501
- on_call_schedule_id: Optional[StrictStr] = Field(default=None, description="The ID of the on-call schedule.")
+ on_call_schedule_id: Optional[UUID] = Field(default=None, description="The ID of the on-call schedule.")
third_party_provider: Optional[OnCallScheduleProviderEnum] = None
remote_id: Optional[StrictStr] = Field(default=None, description="The remote ID of the on call schedule")
name: Optional[StrictStr] = Field(default=None, description="The name of the on call schedule.")
diff --git a/opal_security/models/on_call_schedule_id_list.py b/opal_security/models/on_call_schedule_id_list.py
index cf09868..2cb3d27 100644
--- a/opal_security/models/on_call_schedule_id_list.py
+++ b/opal_security/models/on_call_schedule_id_list.py
@@ -18,8 +18,9 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
from typing import Any, ClassVar, Dict, List
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -27,7 +28,7 @@ class OnCallScheduleIDList(BaseModel):
"""
A list of on call schedule Opal UUIDs. To get the matching remote IDs, use the /on-call-schedules endpoints.
""" # noqa: E501
- on_call_schedule_ids: List[StrictStr]
+ on_call_schedule_ids: List[UUID]
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["on_call_schedule_ids"]
diff --git a/opal_security/models/owner.py b/opal_security/models/owner.py
index c5e33e0..0300aae 100644
--- a/opal_security/models/owner.py
+++ b/opal_security/models/owner.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -27,12 +28,12 @@ class Owner(BaseModel):
"""
# Owner Object ### Description The `Owner` object is used to represent an owner.
""" # noqa: E501
- owner_id: StrictStr = Field(description="The ID of the owner.")
+ owner_id: UUID = Field(description="The ID of the owner.")
name: Optional[StrictStr] = Field(default=None, description="The name of the owner.")
description: Optional[StrictStr] = Field(default=None, description="A description of the owner.")
access_request_escalation_period: Optional[StrictInt] = Field(default=None, description="The amount of time (in minutes) before the next reviewer is notified. Use 0 to remove escalation policy.")
- reviewer_message_channel_id: Optional[StrictStr] = None
- source_group_id: Optional[StrictStr] = None
+ reviewer_message_channel_id: Optional[UUID] = None
+ source_group_id: Optional[UUID] = None
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["owner_id", "name", "description", "access_request_escalation_period", "reviewer_message_channel_id", "source_group_id"]
diff --git a/opal_security/models/rds_engine_enum.py b/opal_security/models/rds_engine_enum.py
new file mode 100644
index 0000000..cb9577f
--- /dev/null
+++ b/opal_security/models/rds_engine_enum.py
@@ -0,0 +1,38 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import json
+from enum import Enum
+from typing_extensions import Self
+
+
+class RDSEngineEnum(str, Enum):
+ """
+ The database engine for the RDS instance.
+ """
+
+ """
+ allowed enum values
+ """
+ MYSQL = 'MYSQL'
+ POSTGRESQL = 'POSTGRESQL'
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Self:
+ """Create an instance of RDSEngineEnum from a JSON string"""
+ return cls(json.loads(json_str))
+
+
diff --git a/opal_security/models/remote_user.py b/opal_security/models/remote_user.py
index 20aaccc..d130f66 100644
--- a/opal_security/models/remote_user.py
+++ b/opal_security/models/remote_user.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List
+from uuid import UUID
from opal_security.models.third_party_provider_enum import ThirdPartyProviderEnum
from typing import Optional, Set
from typing_extensions import Self
@@ -28,7 +29,7 @@ class RemoteUser(BaseModel):
"""
# RemoteUser Object ### Description The `RemoteUser` object is used to represent a remote user.
""" # noqa: E501
- user_id: StrictStr = Field(description="The ID of the user.")
+ user_id: UUID = Field(description="The ID of the user.")
remote_id: StrictStr = Field(description="The ID of the remote user.")
third_party_provider: ThirdPartyProviderEnum = Field(description="The third party provider of the remote user.")
additional_properties: Dict[str, Any] = {}
diff --git a/opal_security/models/request.py b/opal_security/models/request.py
index 935571b..4f6ae22 100644
--- a/opal_security/models/request.py
+++ b/opal_security/models/request.py
@@ -21,6 +21,7 @@
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from opal_security.models.request_custom_field_response import RequestCustomFieldResponse
from opal_security.models.request_item_stages import RequestItemStages
from opal_security.models.request_reviewer_stages import RequestReviewerStages
@@ -33,19 +34,19 @@ class Request(BaseModel):
"""
# Request Object ### Description The `Request` object is used to represent a request. ### Usage Example Returned from the `GET Requests` endpoint.
""" # noqa: E501
- id: StrictStr = Field(description="The unique identifier of the request.")
+ id: UUID = Field(description="The unique identifier of the request.")
created_at: datetime = Field(description="The date and time the request was created.")
updated_at: datetime = Field(description="The date and time the request was last updated.")
- requester_id: StrictStr = Field(description="The unique identifier of the user who created the request.")
- target_user_id: Optional[StrictStr] = Field(default=None, description="The unique identifier of the user who is the target of the request.")
- target_group_id: Optional[StrictStr] = Field(default=None, description="The unique identifier of the group who is the target of the request.")
+ requester_id: UUID = Field(description="The unique identifier of the user who created the request.")
+ target_user_id: Optional[UUID] = Field(default=None, description="The unique identifier of the user who is the target of the request.")
+ target_group_id: Optional[UUID] = Field(default=None, description="The unique identifier of the group who is the target of the request.")
status: RequestStatusEnum = Field(description="The status of the request.")
reason: StrictStr = Field(description="The reason for the request.")
duration_minutes: Optional[StrictInt] = Field(default=None, description="The duration of the request in minutes.")
requested_items_list: Optional[List[RequestedItem]] = Field(default=None, description="The list of targets for the request.")
custom_fields_responses: Optional[List[RequestCustomFieldResponse]] = Field(default=None, description="The responses given to the custom fields associated to the request")
stages: Optional[RequestItemStages] = Field(default=None, description="The stages configuration for this request")
- reviewer_stages: Optional[List[RequestReviewerStages]] = Field(default=None, description="The configured reviewer stages for every item in this request")
+ reviewer_stages: Optional[RequestReviewerStages] = None
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["id", "created_at", "updated_at", "requester_id", "target_user_id", "target_group_id", "status", "reason", "duration_minutes", "requested_items_list", "custom_fields_responses", "stages", "reviewer_stages"]
@@ -107,13 +108,9 @@ def to_dict(self) -> Dict[str, Any]:
# override the default output from pydantic by calling `to_dict()` of stages
if self.stages:
_dict['stages'] = self.stages.to_dict()
- # override the default output from pydantic by calling `to_dict()` of each item in reviewer_stages (list)
- _items = []
+ # override the default output from pydantic by calling `to_dict()` of reviewer_stages
if self.reviewer_stages:
- for _item_reviewer_stages in self.reviewer_stages:
- if _item_reviewer_stages:
- _items.append(_item_reviewer_stages.to_dict())
- _dict['reviewer_stages'] = _items
+ _dict['reviewer_stages'] = self.reviewer_stages.to_dict()
# puts key-value pairs in additional_properties in the top level
if self.additional_properties is not None:
for _key, _value in self.additional_properties.items():
@@ -143,7 +140,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"requested_items_list": [RequestedItem.from_dict(_item) for _item in obj["requested_items_list"]] if obj.get("requested_items_list") is not None else None,
"custom_fields_responses": [RequestCustomFieldResponse.from_dict(_item) for _item in obj["custom_fields_responses"]] if obj.get("custom_fields_responses") is not None else None,
"stages": RequestItemStages.from_dict(obj["stages"]) if obj.get("stages") is not None else None,
- "reviewer_stages": [RequestReviewerStages.from_dict(_item) for _item in obj["reviewer_stages"]] if obj.get("reviewer_stages") is not None else None
+ "reviewer_stages": RequestReviewerStages.from_dict(obj["reviewer_stages"]) if obj.get("reviewer_stages") is not None else None
})
# store additional fields in additional_properties
for _key in obj.keys():
diff --git a/opal_security/models/request_comment.py b/opal_security/models/request_comment.py
index ef6a42d..39db1a9 100644
--- a/opal_security/models/request_comment.py
+++ b/opal_security/models/request_comment.py
@@ -21,6 +21,7 @@
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -29,8 +30,8 @@ class RequestComment(BaseModel):
# Request Comment Object ### Description The `RequestComment` object is used to represent a comment on a request. ### Usage Example Returned from the `GET Requests` endpoint as part of a `Request` object.
""" # noqa: E501
created_at: datetime = Field(description="The date and time the comment was created.")
- request_id: StrictStr = Field(description="The unique identifier of the request the comment is associated with.")
- user_id: StrictStr = Field(description="The unique identifier of the user who made the comment.")
+ request_id: UUID = Field(description="The unique identifier of the request the comment is associated with.")
+ user_id: UUID = Field(description="The unique identifier of the user who made the comment.")
user_full_name: Optional[StrictStr] = Field(default=None, description="The user's full name.")
user_email: Optional[StrictStr] = Field(default=None, description="The user's email address.")
comment: StrictStr = Field(description="The content of the comment.")
diff --git a/opal_security/models/request_configuration.py b/opal_security/models/request_configuration.py
index be33956..d8853e9 100644
--- a/opal_security/models/request_configuration.py
+++ b/opal_security/models/request_configuration.py
@@ -18,8 +18,9 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr
+from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from opal_security.models.condition import Condition
from opal_security.models.reviewer_stage import ReviewerStage
from typing import Optional, Set
@@ -37,7 +38,7 @@ class RequestConfiguration(BaseModel):
recommended_duration_minutes: Optional[StrictInt] = Field(default=None, description="The recommended duration for which the resource should be requested (in minutes). -1 represents an indefinite duration.")
require_support_ticket: StrictBool = Field(description="A bool representing whether or not access requests to the resource require an access ticket.")
extensions_duration_in_minutes: Optional[StrictInt] = Field(default=None, description="The duration for which access can be extended (in minutes). Set to 0 to disable extensions. When > 0, extensions are enabled for the specified duration.")
- request_template_id: Optional[StrictStr] = Field(default=None, description="The ID of the associated request template.")
+ request_template_id: Optional[UUID] = Field(default=None, description="The ID of the associated request template.")
reviewer_stages: Optional[List[ReviewerStage]] = Field(default=None, description="The list of reviewer stages for the request configuration.")
priority: StrictInt = Field(description="The priority of the request configuration.")
additional_properties: Dict[str, Any] = {}
diff --git a/opal_security/models/request_reviewer.py b/opal_security/models/request_reviewer.py
index c84d86b..82f3399 100644
--- a/opal_security/models/request_reviewer.py
+++ b/opal_security/models/request_reviewer.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -27,7 +28,7 @@ class RequestReviewer(BaseModel):
"""
A reviewer in a request stage
""" # noqa: E501
- id: StrictStr = Field(description="The unique identifier of the reviewer")
+ id: UUID = Field(description="The unique identifier of the reviewer")
full_name: Optional[StrictStr] = Field(default=None, description="The user's full name.")
status: StrictStr = Field(description="The status of this reviewer's review")
additional_properties: Dict[str, Any] = {}
diff --git a/opal_security/models/request_reviewer_stages.py b/opal_security/models/request_reviewer_stages.py
index 06309d7..d579642 100644
--- a/opal_security/models/request_reviewer_stages.py
+++ b/opal_security/models/request_reviewer_stages.py
@@ -14,104 +14,133 @@
from __future__ import annotations
-import pprint
-import re # noqa: F401
import json
+import pprint
+from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
+from typing import Any, List, Optional
+from pydantic import StrictStr, Field
+from typing import Union, List, Set, Optional, Dict
+from typing_extensions import Literal, Self
-from pydantic import BaseModel, ConfigDict, Field, StrictStr
-from typing import Any, ClassVar, Dict, List, Optional
-from opal_security.models.request_stage import RequestStage
-from typing import Optional, Set
-from typing_extensions import Self
+REQUESTREVIEWERSTAGES_ONE_OF_SCHEMAS = ["List[RequestReviewerStages]", "str"]
class RequestReviewerStages(BaseModel):
"""
- The stages configuration for a request item
- """ # noqa: E501
- access_level_name: Optional[StrictStr] = Field(default=None, description="The name of the access level requested.")
- access_level_remote_id: Optional[StrictStr] = Field(default=None, description="The ID of the access level requested on the remote system.")
- item_name: StrictStr = Field(description="The name of the requested item")
- item_id: StrictStr = Field(description="The ID of the resource requested.")
- stages: List[RequestStage] = Field(description="The stages of review for this request")
- additional_properties: Dict[str, Any] = {}
- __properties: ClassVar[List[str]] = ["access_level_name", "access_level_remote_id", "item_name", "item_id", "stages"]
+ The configured reviewer stages for every item in this request, or an error message if reviewers could not be loaded
+ """
+ # data type: List[RequestReviewerStages]
+ oneof_schema_1_validator: Optional[List[RequestReviewerStages]] = None
+ # data type: str
+ oneof_schema_2_validator: Optional[StrictStr] = None
+ actual_instance: Optional[Union[List[RequestReviewerStages], str]] = None
+ one_of_schemas: Set[str] = { "List[RequestReviewerStages]", "str" }
model_config = ConfigDict(
- populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
)
- def to_str(self) -> str:
- """Returns the string representation of the model using alias"""
- return pprint.pformat(self.model_dump(by_alias=True))
-
- def to_json(self) -> str:
- """Returns the JSON representation of the model using alias"""
- # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
- return json.dumps(self.to_dict())
+ def __init__(self, *args, **kwargs) -> None:
+ if args:
+ if len(args) > 1:
+ raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`")
+ if kwargs:
+ raise ValueError("If a position argument is used, keyword arguments cannot be used.")
+ super().__init__(actual_instance=args[0])
+ else:
+ super().__init__(**kwargs)
+
+ @field_validator('actual_instance')
+ def actual_instance_must_validate_oneof(cls, v):
+ instance = RequestReviewerStages.model_construct()
+ error_messages = []
+ match = 0
+ # validate data type: List[RequestReviewerStages]
+ try:
+ instance.oneof_schema_1_validator = v
+ match += 1
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+ # validate data type: str
+ try:
+ instance.oneof_schema_2_validator = v
+ match += 1
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+ if match > 1:
+ # more than 1 match
+ raise ValueError("Multiple matches found when setting `actual_instance` in RequestReviewerStages with oneOf schemas: List[RequestReviewerStages], str. Details: " + ", ".join(error_messages))
+ elif match == 0:
+ # no match
+ raise ValueError("No match found when setting `actual_instance` in RequestReviewerStages with oneOf schemas: List[RequestReviewerStages], str. Details: " + ", ".join(error_messages))
+ else:
+ return v
@classmethod
- def from_json(cls, json_str: str) -> Optional[Self]:
- """Create an instance of RequestReviewerStages from a JSON string"""
- return cls.from_dict(json.loads(json_str))
-
- def to_dict(self) -> Dict[str, Any]:
- """Return the dictionary representation of the model using alias.
-
- This has the following differences from calling pydantic's
- `self.model_dump(by_alias=True)`:
-
- * `None` is only added to the output dict for nullable fields that
- were set at model initialization. Other fields with value `None`
- are ignored.
- * Fields in `self.additional_properties` are added to the output dict.
- """
- excluded_fields: Set[str] = set([
- "additional_properties",
- ])
-
- _dict = self.model_dump(
- by_alias=True,
- exclude=excluded_fields,
- exclude_none=True,
- )
- # override the default output from pydantic by calling `to_dict()` of each item in stages (list)
- _items = []
- if self.stages:
- for _item_stages in self.stages:
- if _item_stages:
- _items.append(_item_stages.to_dict())
- _dict['stages'] = _items
- # puts key-value pairs in additional_properties in the top level
- if self.additional_properties is not None:
- for _key, _value in self.additional_properties.items():
- _dict[_key] = _value
-
- return _dict
+ def from_dict(cls, obj: Union[str, Dict[str, Any]]) -> Self:
+ return cls.from_json(json.dumps(obj))
@classmethod
- def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
- """Create an instance of RequestReviewerStages from a dict"""
- if obj is None:
- return None
+ def from_json(cls, json_str: str) -> Self:
+ """Returns the object represented by the json string"""
+ instance = cls.model_construct()
+ error_messages = []
+ match = 0
+
+ # deserialize data into List[RequestReviewerStages]
+ try:
+ # validation
+ instance.oneof_schema_1_validator = json.loads(json_str)
+ # assign value to actual_instance
+ instance.actual_instance = instance.oneof_schema_1_validator
+ match += 1
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+ # deserialize data into str
+ try:
+ # validation
+ instance.oneof_schema_2_validator = json.loads(json_str)
+ # assign value to actual_instance
+ instance.actual_instance = instance.oneof_schema_2_validator
+ match += 1
+ except (ValidationError, ValueError) as e:
+ error_messages.append(str(e))
+
+ if match > 1:
+ # more than 1 match
+ raise ValueError("Multiple matches found when deserializing the JSON string into RequestReviewerStages with oneOf schemas: List[RequestReviewerStages], str. Details: " + ", ".join(error_messages))
+ elif match == 0:
+ # no match
+ raise ValueError("No match found when deserializing the JSON string into RequestReviewerStages with oneOf schemas: List[RequestReviewerStages], str. Details: " + ", ".join(error_messages))
+ else:
+ return instance
- if not isinstance(obj, dict):
- return cls.model_validate(obj)
+ def to_json(self) -> str:
+ """Returns the JSON representation of the actual instance"""
+ if self.actual_instance is None:
+ return "null"
+
+ if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json):
+ return self.actual_instance.to_json()
+ else:
+ return json.dumps(self.actual_instance)
+
+ def to_dict(self) -> Optional[Union[Dict[str, Any], List[RequestReviewerStages], str]]:
+ """Returns the dict representation of the actual instance"""
+ if self.actual_instance is None:
+ return None
- _obj = cls.model_validate({
- "access_level_name": obj.get("access_level_name"),
- "access_level_remote_id": obj.get("access_level_remote_id"),
- "item_name": obj.get("item_name"),
- "item_id": obj.get("item_id"),
- "stages": [RequestStage.from_dict(_item) for _item in obj["stages"]] if obj.get("stages") is not None else None
- })
- # store additional fields in additional_properties
- for _key in obj.keys():
- if _key not in cls.__properties:
- _obj.additional_properties[_key] = obj.get(_key)
+ if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict):
+ return self.actual_instance.to_dict()
+ else:
+ # primitive type
+ return self.actual_instance
- return _obj
+ def to_str(self) -> str:
+ """Returns the string representation of the actual instance"""
+ return pprint.pformat(self.model_dump())
+# TODO: Rewrite to not use raise_errors
+RequestReviewerStages.model_rebuild(raise_errors=False)
diff --git a/opal_security/models/requested_item.py b/opal_security/models/requested_item.py
index 9e6ae9e..e2e1202 100644
--- a/opal_security/models/requested_item.py
+++ b/opal_security/models/requested_item.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -27,8 +28,8 @@ class RequestedItem(BaseModel):
"""
# Requested Item Object ### Description The `RequestedItem` object is used to represent a request target item. ### Usage Example Returned from the `GET Requests` endpoint.
""" # noqa: E501
- resource_id: Optional[StrictStr] = Field(default=None, description="The ID of the resource requested.")
- group_id: Optional[StrictStr] = Field(default=None, description="The ID of the group requested.")
+ resource_id: Optional[UUID] = Field(default=None, description="The ID of the resource requested.")
+ group_id: Optional[UUID] = Field(default=None, description="The ID of the group requested.")
access_level_name: Optional[StrictStr] = Field(default=None, description="The name of the access level requested.")
access_level_remote_id: Optional[StrictStr] = Field(default=None, description="The ID of the access level requested on the remote system.")
name: Optional[StrictStr] = Field(default=None, description="The name of the target.")
diff --git a/opal_security/models/resource.py b/opal_security/models/resource.py
index ace6bcf..a717453 100644
--- a/opal_security/models/resource.py
+++ b/opal_security/models/resource.py
@@ -21,6 +21,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from typing_extensions import Annotated
+from uuid import UUID
from opal_security.models.request_configuration import RequestConfiguration
from opal_security.models.resource_remote_info import ResourceRemoteInfo
from opal_security.models.resource_type_enum import ResourceTypeEnum
@@ -34,11 +35,11 @@ class Resource(BaseModel):
"""
# Resource Object ### Description The `Resource` object is used to represent a resource. ### Usage Example Update from the `UPDATE Resources` endpoint.
""" # noqa: E501
- resource_id: StrictStr = Field(description="The ID of the resource.")
- app_id: Optional[StrictStr] = Field(default=None, description="The ID of the app.")
+ resource_id: UUID = Field(description="The ID of the resource.")
+ app_id: Optional[UUID] = Field(default=None, description="The ID of the app.")
name: Optional[StrictStr] = Field(default=None, description="The name of the resource.")
description: Optional[StrictStr] = Field(default=None, description="A description of the resource.")
- admin_owner_id: Optional[StrictStr] = Field(default=None, description="The ID of the owner of the resource.")
+ admin_owner_id: Optional[UUID] = Field(default=None, description="The ID of the owner of the resource.")
remote_resource_id: Optional[StrictStr] = Field(default=None, description="The ID of the resource on the remote system.")
remote_resource_name: Optional[StrictStr] = Field(default=None, description="The name of the resource on the remote system.")
resource_type: Optional[ResourceTypeEnum] = None
@@ -51,10 +52,10 @@ class Resource(BaseModel):
require_mfa_to_request: Optional[StrictBool] = Field(default=None, description="A bool representing whether or not to require MFA for requesting access to this resource.")
require_mfa_to_connect: Optional[StrictBool] = Field(default=None, description="A bool representing whether or not to require MFA to connect to this resource.")
auto_approval: Optional[StrictBool] = Field(default=None, description="A bool representing whether or not to automatically approve requests to this resource.")
- request_template_id: Optional[StrictStr] = Field(default=None, description="The ID of the associated request template.")
+ request_template_id: Optional[UUID] = Field(default=None, description="The ID of the associated request template.")
is_requestable: Optional[StrictBool] = Field(default=None, description="A bool representing whether or not to allow access requests to this resource.")
- parent_resource_id: Optional[StrictStr] = Field(default=None, description="The ID of the parent resource.")
- configuration_template_id: Optional[StrictStr] = Field(default=None, description="The ID of the associated configuration template.")
+ parent_resource_id: Optional[UUID] = Field(default=None, description="The ID of the parent resource.")
+ configuration_template_id: Optional[UUID] = Field(default=None, description="The ID of the associated configuration template.")
request_configurations: Optional[List[RequestConfiguration]] = Field(default=None, description="A list of configurations for requests to this resource.")
request_configuration_list: Optional[List[RequestConfiguration]] = Field(default=None, description="A list of configurations for requests to this resource. Deprecated in favor of `request_configurations`.")
ticket_propagation: Optional[TicketPropagationConfiguration] = None
@@ -63,8 +64,8 @@ class Resource(BaseModel):
risk_sensitivity_override: Optional[RiskSensitivityEnum] = None
metadata: Optional[StrictStr] = Field(default=None, description="JSON metadata about the remote resource. Only set for items linked to remote systems. See [this guide](https://docs.opal.dev/reference/end-system-objects) for details.")
remote_info: Optional[ResourceRemoteInfo] = None
- ancestor_resource_ids: Optional[List[StrictStr]] = Field(default=None, description="List of resource IDs that are ancestors of this resource.")
- descendant_resource_ids: Optional[List[StrictStr]] = Field(default=None, description="List of resource IDs that are descendants of this resource.")
+ ancestor_resource_ids: Optional[List[UUID]] = Field(default=None, description="List of resource IDs that are ancestors of this resource.")
+ descendant_resource_ids: Optional[List[UUID]] = Field(default=None, description="List of resource IDs that are descendants of this resource.")
last_successful_sync: Optional[SyncTask] = Field(default=None, description="Information about the last successful sync of this resource.")
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["resource_id", "app_id", "name", "description", "admin_owner_id", "remote_resource_id", "remote_resource_name", "resource_type", "max_duration", "recommended_duration", "extensions_duration_in_minutes", "require_manager_approval", "require_support_ticket", "require_mfa_to_approve", "require_mfa_to_request", "require_mfa_to_connect", "auto_approval", "request_template_id", "is_requestable", "parent_resource_id", "configuration_template_id", "request_configurations", "request_configuration_list", "ticket_propagation", "custom_request_notification", "risk_sensitivity", "risk_sensitivity_override", "metadata", "remote_info", "ancestor_resource_ids", "descendant_resource_ids", "last_successful_sync"]
diff --git a/opal_security/models/resource_access_user.py b/opal_security/models/resource_access_user.py
index daeb466..73007c4 100644
--- a/opal_security/models/resource_access_user.py
+++ b/opal_security/models/resource_access_user.py
@@ -21,6 +21,7 @@
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from opal_security.models.propagation_status import PropagationStatus
from opal_security.models.resource_access_level import ResourceAccessLevel
from typing import Optional, Set
@@ -30,8 +31,10 @@ class ResourceAccessUser(BaseModel):
"""
# Resource Access User Object ### Description The `ResourceAccessUser` object is used to represent a user with access to a resource, either directly or indirectly through group(s). ### Usage Example Fetch from the `LIST ResourceUsers` endpoint.
""" # noqa: E501
- resource_id: StrictStr = Field(description="The ID of the resource.")
- user_id: StrictStr = Field(description="The ID of the user.")
+ resource_id: UUID = Field(description="The ID of the resource.")
+ resource_name: Optional[StrictStr] = Field(default=None, description="The name of the resource.")
+ description: Optional[StrictStr] = Field(default=None, description="The description of the resource.")
+ user_id: UUID = Field(description="The ID of the user.")
access_level: ResourceAccessLevel
full_name: StrictStr = Field(description="The user's full name.")
email: StrictStr = Field(description="The user's email.")
@@ -40,7 +43,7 @@ class ResourceAccessUser(BaseModel):
num_access_paths: StrictInt = Field(description="The number of ways in which the user has access through this resource (directly and indirectly).")
propagation_status: Optional[PropagationStatus] = None
additional_properties: Dict[str, Any] = {}
- __properties: ClassVar[List[str]] = ["resource_id", "user_id", "access_level", "full_name", "email", "expiration_date", "has_direct_access", "num_access_paths", "propagation_status"]
+ __properties: ClassVar[List[str]] = ["resource_id", "resource_name", "description", "user_id", "access_level", "full_name", "email", "expiration_date", "has_direct_access", "num_access_paths", "propagation_status"]
model_config = ConfigDict(
populate_by_name=True,
@@ -107,6 +110,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
_obj = cls.model_validate({
"resource_id": obj.get("resource_id"),
+ "resource_name": obj.get("resource_name"),
+ "description": obj.get("description"),
"user_id": obj.get("user_id"),
"access_level": ResourceAccessLevel.from_dict(obj["access_level"]) if obj.get("access_level") is not None else None,
"full_name": obj.get("full_name"),
diff --git a/opal_security/models/resource_nhi.py b/opal_security/models/resource_nhi.py
index 14a9813..9a380a1 100644
--- a/opal_security/models/resource_nhi.py
+++ b/opal_security/models/resource_nhi.py
@@ -19,8 +19,9 @@
import json
from datetime import datetime
-from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from opal_security.models.resource_access_level import ResourceAccessLevel
from typing import Optional, Set
from typing_extensions import Self
@@ -29,8 +30,8 @@ class ResourceNHI(BaseModel):
"""
# Resource Non-Human Identity Direct Access Object ### Description This object is used to represent a non-human identity with direct access to a resource.
""" # noqa: E501
- resource_id: StrictStr = Field(description="The ID of the resource.")
- non_human_identity_id: StrictStr = Field(description="The resource ID of the non-human identity.")
+ resource_id: UUID = Field(description="The ID of the resource.")
+ non_human_identity_id: UUID = Field(description="The resource ID of the non-human identity.")
access_level: Optional[ResourceAccessLevel] = None
expiration_date: Optional[datetime] = Field(default=None, description="The day and time the non-human identity's access will expire.")
additional_properties: Dict[str, Any] = {}
diff --git a/opal_security/models/resource_remote_info.py b/opal_security/models/resource_remote_info.py
index f583e9e..3bc8952 100644
--- a/opal_security/models/resource_remote_info.py
+++ b/opal_security/models/resource_remote_info.py
@@ -27,6 +27,7 @@
from opal_security.models.resource_remote_info_aws_iam_role import ResourceRemoteInfoAwsIamRole
from opal_security.models.resource_remote_info_aws_organizational_unit import ResourceRemoteInfoAwsOrganizationalUnit
from opal_security.models.resource_remote_info_aws_permission_set import ResourceRemoteInfoAwsPermissionSet
+from opal_security.models.resource_remote_info_aws_rds_cluster import ResourceRemoteInfoAwsRdsCluster
from opal_security.models.resource_remote_info_aws_rds_instance import ResourceRemoteInfoAwsRdsInstance
from opal_security.models.resource_remote_info_azure_enterprise_app import ResourceRemoteInfoAzureEnterpriseApp
from opal_security.models.resource_remote_info_azure_entra_id_role import ResourceRemoteInfoAzureEntraIdRole
@@ -44,7 +45,10 @@
from opal_security.models.resource_remote_info_coupa_role import ResourceRemoteInfoCoupaRole
from opal_security.models.resource_remote_info_cursor_organization import ResourceRemoteInfoCursorOrganization
from opal_security.models.resource_remote_info_custom_connector import ResourceRemoteInfoCustomConnector
+from opal_security.models.resource_remote_info_databricks_account_service_principal import ResourceRemoteInfoDatabricksAccountServicePrincipal
from opal_security.models.resource_remote_info_datastax_astra_role import ResourceRemoteInfoDatastaxAstraRole
+from opal_security.models.resource_remote_info_devin_organization import ResourceRemoteInfoDevinOrganization
+from opal_security.models.resource_remote_info_devin_role import ResourceRemoteInfoDevinRole
from opal_security.models.resource_remote_info_gcp_big_query_dataset import ResourceRemoteInfoGcpBigQueryDataset
from opal_security.models.resource_remote_info_gcp_big_query_table import ResourceRemoteInfoGcpBigQueryTable
from opal_security.models.resource_remote_info_gcp_bucket import ResourceRemoteInfoGcpBucket
@@ -60,6 +64,7 @@
from opal_security.models.resource_remote_info_github_repo import ResourceRemoteInfoGithubRepo
from opal_security.models.resource_remote_info_gitlab_project import ResourceRemoteInfoGitlabProject
from opal_security.models.resource_remote_info_google_workspace_role import ResourceRemoteInfoGoogleWorkspaceRole
+from opal_security.models.resource_remote_info_ilevel_advanced_role import ResourceRemoteInfoIlevelAdvancedRole
from opal_security.models.resource_remote_info_okta_app import ResourceRemoteInfoOktaApp
from opal_security.models.resource_remote_info_okta_custom_role import ResourceRemoteInfoOktaCustomRole
from opal_security.models.resource_remote_info_okta_standard_role import ResourceRemoteInfoOktaStandardRole
@@ -70,7 +75,12 @@
from opal_security.models.resource_remote_info_salesforce_permission_set import ResourceRemoteInfoSalesforcePermissionSet
from opal_security.models.resource_remote_info_salesforce_profile import ResourceRemoteInfoSalesforceProfile
from opal_security.models.resource_remote_info_salesforce_role import ResourceRemoteInfoSalesforceRole
+from opal_security.models.resource_remote_info_snowflake_database import ResourceRemoteInfoSnowflakeDatabase
+from opal_security.models.resource_remote_info_snowflake_schema import ResourceRemoteInfoSnowflakeSchema
+from opal_security.models.resource_remote_info_snowflake_table import ResourceRemoteInfoSnowflakeTable
+from opal_security.models.resource_remote_info_tailscale_ssh import ResourceRemoteInfoTailscaleSsh
from opal_security.models.resource_remote_info_teleport_role import ResourceRemoteInfoTeleportRole
+from opal_security.models.resource_remote_info_workday_role import ResourceRemoteInfoWorkdayRole
from typing import Optional, Set
from typing_extensions import Self
@@ -78,6 +88,7 @@ class ResourceRemoteInfo(BaseModel):
"""
Information that defines the remote resource. This replaces the deprecated remote_id and metadata fields.
""" # noqa: E501
+ databricks_account_service_principal: Optional[ResourceRemoteInfoDatabricksAccountServicePrincipal] = None
azure_subscription: Optional[ResourceRemoteInfoAzureSubscription] = None
azure_resource_group: Optional[ResourceRemoteInfoAzureResourceGroup] = None
azure_management_group: Optional[ResourceRemoteInfoAzureManagementGroup] = None
@@ -96,6 +107,7 @@ class ResourceRemoteInfo(BaseModel):
aws_permission_set: Optional[ResourceRemoteInfoAwsPermissionSet] = None
aws_iam_role: Optional[ResourceRemoteInfoAwsIamRole] = None
aws_ec2_instance: Optional[ResourceRemoteInfoAwsEc2Instance] = None
+ aws_rds_cluster: Optional[ResourceRemoteInfoAwsRdsCluster] = None
aws_rds_instance: Optional[ResourceRemoteInfoAwsRdsInstance] = None
aws_eks_cluster: Optional[ResourceRemoteInfoAwsEksCluster] = None
custom_connector: Optional[ResourceRemoteInfoCustomConnector] = None
@@ -117,7 +129,13 @@ class ResourceRemoteInfo(BaseModel):
okta_app: Optional[ResourceRemoteInfoOktaApp] = None
okta_standard_role: Optional[ResourceRemoteInfoOktaStandardRole] = None
okta_custom_role: Optional[ResourceRemoteInfoOktaCustomRole] = None
+ snowflake_database: Optional[ResourceRemoteInfoSnowflakeDatabase] = None
+ snowflake_schema: Optional[ResourceRemoteInfoSnowflakeSchema] = None
+ snowflake_table: Optional[ResourceRemoteInfoSnowflakeTable] = None
+ ilevel_advanced_role: Optional[ResourceRemoteInfoIlevelAdvancedRole] = None
+ tailscale_ssh: Optional[ResourceRemoteInfoTailscaleSsh] = None
pagerduty_role: Optional[ResourceRemoteInfoPagerdutyRole] = None
+ workday_role: Optional[ResourceRemoteInfoWorkdayRole] = None
salesforce_permission_set: Optional[ResourceRemoteInfoSalesforcePermissionSet] = None
salesforce_profile: Optional[ResourceRemoteInfoSalesforceProfile] = None
salesforce_role: Optional[ResourceRemoteInfoSalesforceRole] = None
@@ -129,8 +147,10 @@ class ResourceRemoteInfo(BaseModel):
openai_platform_service_account: Optional[ResourceRemoteInfoOpenaiPlatformServiceAccount] = None
anthropic_workspace: Optional[ResourceRemoteInfoAnthropicWorkspace] = None
oracle_fusion_role: Optional[ResourceRemoteInfoOracleFusionRole] = None
+ devin_organization: Optional[ResourceRemoteInfoDevinOrganization] = None
+ devin_role: Optional[ResourceRemoteInfoDevinRole] = None
additional_properties: Dict[str, Any] = {}
- __properties: ClassVar[List[str]] = ["azure_subscription", "azure_resource_group", "azure_management_group", "azure_virtual_machine", "azure_storage_account", "azure_storage_container", "azure_sql_server", "azure_sql_database", "azure_sql_managed_instance", "azure_sql_managed_database", "azure_user_assigned_managed_identity", "azure_enterprise_app", "azure_entra_id_role", "aws_organizational_unit", "aws_account", "aws_permission_set", "aws_iam_role", "aws_ec2_instance", "aws_rds_instance", "aws_eks_cluster", "custom_connector", "gcp_organization", "gcp_bucket", "gcp_compute_instance", "gcp_big_query_dataset", "gcp_big_query_table", "gcp_folder", "gcp_gke_cluster", "gcp_project", "gcp_sql_instance", "gcp_service_account", "google_workspace_role", "github_repo", "github_org_role", "github_org", "gitlab_project", "okta_app", "okta_standard_role", "okta_custom_role", "pagerduty_role", "salesforce_permission_set", "salesforce_profile", "salesforce_role", "teleport_role", "datastax_astra_role", "coupa_role", "cursor_organization", "openai_platform_project", "openai_platform_service_account", "anthropic_workspace", "oracle_fusion_role"]
+ __properties: ClassVar[List[str]] = ["databricks_account_service_principal", "azure_subscription", "azure_resource_group", "azure_management_group", "azure_virtual_machine", "azure_storage_account", "azure_storage_container", "azure_sql_server", "azure_sql_database", "azure_sql_managed_instance", "azure_sql_managed_database", "azure_user_assigned_managed_identity", "azure_enterprise_app", "azure_entra_id_role", "aws_organizational_unit", "aws_account", "aws_permission_set", "aws_iam_role", "aws_ec2_instance", "aws_rds_cluster", "aws_rds_instance", "aws_eks_cluster", "custom_connector", "gcp_organization", "gcp_bucket", "gcp_compute_instance", "gcp_big_query_dataset", "gcp_big_query_table", "gcp_folder", "gcp_gke_cluster", "gcp_project", "gcp_sql_instance", "gcp_service_account", "google_workspace_role", "github_repo", "github_org_role", "github_org", "gitlab_project", "okta_app", "okta_standard_role", "okta_custom_role", "snowflake_database", "snowflake_schema", "snowflake_table", "ilevel_advanced_role", "tailscale_ssh", "pagerduty_role", "workday_role", "salesforce_permission_set", "salesforce_profile", "salesforce_role", "teleport_role", "datastax_astra_role", "coupa_role", "cursor_organization", "openai_platform_project", "openai_platform_service_account", "anthropic_workspace", "oracle_fusion_role", "devin_organization", "devin_role"]
model_config = ConfigDict(
populate_by_name=True,
@@ -173,6 +193,9 @@ def to_dict(self) -> Dict[str, Any]:
exclude=excluded_fields,
exclude_none=True,
)
+ # override the default output from pydantic by calling `to_dict()` of databricks_account_service_principal
+ if self.databricks_account_service_principal:
+ _dict['databricks_account_service_principal'] = self.databricks_account_service_principal.to_dict()
# override the default output from pydantic by calling `to_dict()` of azure_subscription
if self.azure_subscription:
_dict['azure_subscription'] = self.azure_subscription.to_dict()
@@ -227,6 +250,9 @@ def to_dict(self) -> Dict[str, Any]:
# override the default output from pydantic by calling `to_dict()` of aws_ec2_instance
if self.aws_ec2_instance:
_dict['aws_ec2_instance'] = self.aws_ec2_instance.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of aws_rds_cluster
+ if self.aws_rds_cluster:
+ _dict['aws_rds_cluster'] = self.aws_rds_cluster.to_dict()
# override the default output from pydantic by calling `to_dict()` of aws_rds_instance
if self.aws_rds_instance:
_dict['aws_rds_instance'] = self.aws_rds_instance.to_dict()
@@ -290,9 +316,27 @@ def to_dict(self) -> Dict[str, Any]:
# override the default output from pydantic by calling `to_dict()` of okta_custom_role
if self.okta_custom_role:
_dict['okta_custom_role'] = self.okta_custom_role.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of snowflake_database
+ if self.snowflake_database:
+ _dict['snowflake_database'] = self.snowflake_database.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of snowflake_schema
+ if self.snowflake_schema:
+ _dict['snowflake_schema'] = self.snowflake_schema.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of snowflake_table
+ if self.snowflake_table:
+ _dict['snowflake_table'] = self.snowflake_table.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of ilevel_advanced_role
+ if self.ilevel_advanced_role:
+ _dict['ilevel_advanced_role'] = self.ilevel_advanced_role.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of tailscale_ssh
+ if self.tailscale_ssh:
+ _dict['tailscale_ssh'] = self.tailscale_ssh.to_dict()
# override the default output from pydantic by calling `to_dict()` of pagerduty_role
if self.pagerduty_role:
_dict['pagerduty_role'] = self.pagerduty_role.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of workday_role
+ if self.workday_role:
+ _dict['workday_role'] = self.workday_role.to_dict()
# override the default output from pydantic by calling `to_dict()` of salesforce_permission_set
if self.salesforce_permission_set:
_dict['salesforce_permission_set'] = self.salesforce_permission_set.to_dict()
@@ -326,6 +370,12 @@ def to_dict(self) -> Dict[str, Any]:
# override the default output from pydantic by calling `to_dict()` of oracle_fusion_role
if self.oracle_fusion_role:
_dict['oracle_fusion_role'] = self.oracle_fusion_role.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of devin_organization
+ if self.devin_organization:
+ _dict['devin_organization'] = self.devin_organization.to_dict()
+ # override the default output from pydantic by calling `to_dict()` of devin_role
+ if self.devin_role:
+ _dict['devin_role'] = self.devin_role.to_dict()
# puts key-value pairs in additional_properties in the top level
if self.additional_properties is not None:
for _key, _value in self.additional_properties.items():
@@ -343,6 +393,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
return cls.model_validate(obj)
_obj = cls.model_validate({
+ "databricks_account_service_principal": ResourceRemoteInfoDatabricksAccountServicePrincipal.from_dict(obj["databricks_account_service_principal"]) if obj.get("databricks_account_service_principal") is not None else None,
"azure_subscription": ResourceRemoteInfoAzureSubscription.from_dict(obj["azure_subscription"]) if obj.get("azure_subscription") is not None else None,
"azure_resource_group": ResourceRemoteInfoAzureResourceGroup.from_dict(obj["azure_resource_group"]) if obj.get("azure_resource_group") is not None else None,
"azure_management_group": ResourceRemoteInfoAzureManagementGroup.from_dict(obj["azure_management_group"]) if obj.get("azure_management_group") is not None else None,
@@ -361,6 +412,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"aws_permission_set": ResourceRemoteInfoAwsPermissionSet.from_dict(obj["aws_permission_set"]) if obj.get("aws_permission_set") is not None else None,
"aws_iam_role": ResourceRemoteInfoAwsIamRole.from_dict(obj["aws_iam_role"]) if obj.get("aws_iam_role") is not None else None,
"aws_ec2_instance": ResourceRemoteInfoAwsEc2Instance.from_dict(obj["aws_ec2_instance"]) if obj.get("aws_ec2_instance") is not None else None,
+ "aws_rds_cluster": ResourceRemoteInfoAwsRdsCluster.from_dict(obj["aws_rds_cluster"]) if obj.get("aws_rds_cluster") is not None else None,
"aws_rds_instance": ResourceRemoteInfoAwsRdsInstance.from_dict(obj["aws_rds_instance"]) if obj.get("aws_rds_instance") is not None else None,
"aws_eks_cluster": ResourceRemoteInfoAwsEksCluster.from_dict(obj["aws_eks_cluster"]) if obj.get("aws_eks_cluster") is not None else None,
"custom_connector": ResourceRemoteInfoCustomConnector.from_dict(obj["custom_connector"]) if obj.get("custom_connector") is not None else None,
@@ -382,7 +434,13 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"okta_app": ResourceRemoteInfoOktaApp.from_dict(obj["okta_app"]) if obj.get("okta_app") is not None else None,
"okta_standard_role": ResourceRemoteInfoOktaStandardRole.from_dict(obj["okta_standard_role"]) if obj.get("okta_standard_role") is not None else None,
"okta_custom_role": ResourceRemoteInfoOktaCustomRole.from_dict(obj["okta_custom_role"]) if obj.get("okta_custom_role") is not None else None,
+ "snowflake_database": ResourceRemoteInfoSnowflakeDatabase.from_dict(obj["snowflake_database"]) if obj.get("snowflake_database") is not None else None,
+ "snowflake_schema": ResourceRemoteInfoSnowflakeSchema.from_dict(obj["snowflake_schema"]) if obj.get("snowflake_schema") is not None else None,
+ "snowflake_table": ResourceRemoteInfoSnowflakeTable.from_dict(obj["snowflake_table"]) if obj.get("snowflake_table") is not None else None,
+ "ilevel_advanced_role": ResourceRemoteInfoIlevelAdvancedRole.from_dict(obj["ilevel_advanced_role"]) if obj.get("ilevel_advanced_role") is not None else None,
+ "tailscale_ssh": ResourceRemoteInfoTailscaleSsh.from_dict(obj["tailscale_ssh"]) if obj.get("tailscale_ssh") is not None else None,
"pagerduty_role": ResourceRemoteInfoPagerdutyRole.from_dict(obj["pagerduty_role"]) if obj.get("pagerduty_role") is not None else None,
+ "workday_role": ResourceRemoteInfoWorkdayRole.from_dict(obj["workday_role"]) if obj.get("workday_role") is not None else None,
"salesforce_permission_set": ResourceRemoteInfoSalesforcePermissionSet.from_dict(obj["salesforce_permission_set"]) if obj.get("salesforce_permission_set") is not None else None,
"salesforce_profile": ResourceRemoteInfoSalesforceProfile.from_dict(obj["salesforce_profile"]) if obj.get("salesforce_profile") is not None else None,
"salesforce_role": ResourceRemoteInfoSalesforceRole.from_dict(obj["salesforce_role"]) if obj.get("salesforce_role") is not None else None,
@@ -393,7 +451,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"openai_platform_project": ResourceRemoteInfoOpenaiPlatformProject.from_dict(obj["openai_platform_project"]) if obj.get("openai_platform_project") is not None else None,
"openai_platform_service_account": ResourceRemoteInfoOpenaiPlatformServiceAccount.from_dict(obj["openai_platform_service_account"]) if obj.get("openai_platform_service_account") is not None else None,
"anthropic_workspace": ResourceRemoteInfoAnthropicWorkspace.from_dict(obj["anthropic_workspace"]) if obj.get("anthropic_workspace") is not None else None,
- "oracle_fusion_role": ResourceRemoteInfoOracleFusionRole.from_dict(obj["oracle_fusion_role"]) if obj.get("oracle_fusion_role") is not None else None
+ "oracle_fusion_role": ResourceRemoteInfoOracleFusionRole.from_dict(obj["oracle_fusion_role"]) if obj.get("oracle_fusion_role") is not None else None,
+ "devin_organization": ResourceRemoteInfoDevinOrganization.from_dict(obj["devin_organization"]) if obj.get("devin_organization") is not None else None,
+ "devin_role": ResourceRemoteInfoDevinRole.from_dict(obj["devin_role"]) if obj.get("devin_role") is not None else None
})
# store additional fields in additional_properties
for _key in obj.keys():
diff --git a/opal_security/models/resource_remote_info_aws_rds_cluster.py b/opal_security/models/resource_remote_info_aws_rds_cluster.py
new file mode 100644
index 0000000..ae2f376
--- /dev/null
+++ b/opal_security/models/resource_remote_info_aws_rds_cluster.py
@@ -0,0 +1,112 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List
+from opal_security.models.rds_engine_enum import RDSEngineEnum
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ResourceRemoteInfoAwsRdsCluster(BaseModel):
+ """
+ Remote info for AWS RDS cluster.
+ """ # noqa: E501
+ cluster_id: StrictStr = Field(description="The clusterId of the RDS cluster.")
+ region: StrictStr = Field(description="The region of the RDS cluster.")
+ resource_id: StrictStr = Field(description="The resourceId of the RDS cluster.")
+ account_id: StrictStr = Field(description="The id of the AWS account. Required for AWS Organizations.")
+ database_name: StrictStr = Field(description="The name of the database in the RDS cluster. This can be the value of the tag `opal:database-name` or the database name.")
+ engine: RDSEngineEnum
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["cluster_id", "region", "resource_id", "account_id", "database_name", "engine"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of ResourceRemoteInfoAwsRdsCluster from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ResourceRemoteInfoAwsRdsCluster from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "cluster_id": obj.get("cluster_id"),
+ "region": obj.get("region"),
+ "resource_id": obj.get("resource_id"),
+ "account_id": obj.get("account_id"),
+ "database_name": obj.get("database_name"),
+ "engine": obj.get("engine")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/opal_security/models/resource_remote_info_databricks_account_service_principal.py b/opal_security/models/resource_remote_info_databricks_account_service_principal.py
new file mode 100644
index 0000000..a61ff00
--- /dev/null
+++ b/opal_security/models/resource_remote_info_databricks_account_service_principal.py
@@ -0,0 +1,103 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ResourceRemoteInfoDatabricksAccountServicePrincipal(BaseModel):
+ """
+ Remote info for Databricks account service principal.
+ """ # noqa: E501
+ application_id: StrictStr = Field(description="The application ID of the service principal.")
+ resource_id: StrictStr = Field(description="The resource ID of the service principal.")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["application_id", "resource_id"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of ResourceRemoteInfoDatabricksAccountServicePrincipal from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ResourceRemoteInfoDatabricksAccountServicePrincipal from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "application_id": obj.get("application_id"),
+ "resource_id": obj.get("resource_id")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/opal_security/models/resource_remote_info_devin_organization.py b/opal_security/models/resource_remote_info_devin_organization.py
new file mode 100644
index 0000000..5ae28c5
--- /dev/null
+++ b/opal_security/models/resource_remote_info_devin_organization.py
@@ -0,0 +1,101 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ResourceRemoteInfoDevinOrganization(BaseModel):
+ """
+ Remote info for Devin organization.
+ """ # noqa: E501
+ org_id: StrictStr = Field(description="The id of the organization.")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["org_id"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of ResourceRemoteInfoDevinOrganization from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ResourceRemoteInfoDevinOrganization from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "org_id": obj.get("org_id")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/opal_security/models/resource_remote_info_devin_role.py b/opal_security/models/resource_remote_info_devin_role.py
new file mode 100644
index 0000000..b97de14
--- /dev/null
+++ b/opal_security/models/resource_remote_info_devin_role.py
@@ -0,0 +1,101 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ResourceRemoteInfoDevinRole(BaseModel):
+ """
+ Remote info for Devin role.
+ """ # noqa: E501
+ role_id: StrictStr = Field(description="The id of the role.")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["role_id"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of ResourceRemoteInfoDevinRole from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ResourceRemoteInfoDevinRole from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "role_id": obj.get("role_id")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/opal_security/models/resource_remote_info_ilevel_advanced_role.py b/opal_security/models/resource_remote_info_ilevel_advanced_role.py
new file mode 100644
index 0000000..1227c73
--- /dev/null
+++ b/opal_security/models/resource_remote_info_ilevel_advanced_role.py
@@ -0,0 +1,101 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ResourceRemoteInfoIlevelAdvancedRole(BaseModel):
+ """
+ Remote info for iLevel Advanced role.
+ """ # noqa: E501
+ role_name: StrictStr = Field(description="The name of the role.")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["role_name"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of ResourceRemoteInfoIlevelAdvancedRole from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ResourceRemoteInfoIlevelAdvancedRole from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "role_name": obj.get("role_name")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/opal_security/models/resource_remote_info_snowflake_database.py b/opal_security/models/resource_remote_info_snowflake_database.py
new file mode 100644
index 0000000..ab54a6d
--- /dev/null
+++ b/opal_security/models/resource_remote_info_snowflake_database.py
@@ -0,0 +1,101 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ResourceRemoteInfoSnowflakeDatabase(BaseModel):
+ """
+ Remote info for Snowflake database.
+ """ # noqa: E501
+ database_name: StrictStr = Field(description="The name of the database.")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["database_name"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of ResourceRemoteInfoSnowflakeDatabase from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ResourceRemoteInfoSnowflakeDatabase from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "database_name": obj.get("database_name")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/opal_security/models/resource_remote_info_snowflake_schema.py b/opal_security/models/resource_remote_info_snowflake_schema.py
new file mode 100644
index 0000000..9142b27
--- /dev/null
+++ b/opal_security/models/resource_remote_info_snowflake_schema.py
@@ -0,0 +1,103 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ResourceRemoteInfoSnowflakeSchema(BaseModel):
+ """
+ Remote info for Snowflake schema.
+ """ # noqa: E501
+ database_name: StrictStr = Field(description="The name of the database the schema is in.")
+ schema_name: StrictStr = Field(description="The name of the schema.")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["database_name", "schema_name"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of ResourceRemoteInfoSnowflakeSchema from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ResourceRemoteInfoSnowflakeSchema from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "database_name": obj.get("database_name"),
+ "schema_name": obj.get("schema_name")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/opal_security/models/resource_remote_info_snowflake_table.py b/opal_security/models/resource_remote_info_snowflake_table.py
new file mode 100644
index 0000000..8e5918b
--- /dev/null
+++ b/opal_security/models/resource_remote_info_snowflake_table.py
@@ -0,0 +1,105 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ResourceRemoteInfoSnowflakeTable(BaseModel):
+ """
+ Remote info for Snowflake table.
+ """ # noqa: E501
+ database_name: StrictStr = Field(description="The name of the database the table is in.")
+ schema_name: StrictStr = Field(description="The name of the schema the table is in.")
+ table_name: StrictStr = Field(description="The name of the table.")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["database_name", "schema_name", "table_name"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of ResourceRemoteInfoSnowflakeTable from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ResourceRemoteInfoSnowflakeTable from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "database_name": obj.get("database_name"),
+ "schema_name": obj.get("schema_name"),
+ "table_name": obj.get("table_name")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/opal_security/models/resource_remote_info_tailscale_ssh.py b/opal_security/models/resource_remote_info_tailscale_ssh.py
new file mode 100644
index 0000000..7fe260f
--- /dev/null
+++ b/opal_security/models/resource_remote_info_tailscale_ssh.py
@@ -0,0 +1,101 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ResourceRemoteInfoTailscaleSsh(BaseModel):
+ """
+ Remote info for Tailscale SSH tag.
+ """ # noqa: E501
+ tag_name: StrictStr = Field(description="The name of the tag.")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["tag_name"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of ResourceRemoteInfoTailscaleSsh from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ResourceRemoteInfoTailscaleSsh from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "tag_name": obj.get("tag_name")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/opal_security/models/resource_remote_info_workday_role.py b/opal_security/models/resource_remote_info_workday_role.py
new file mode 100644
index 0000000..41c9bae
--- /dev/null
+++ b/opal_security/models/resource_remote_info_workday_role.py
@@ -0,0 +1,101 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+from __future__ import annotations
+import pprint
+import re # noqa: F401
+import json
+
+from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class ResourceRemoteInfoWorkdayRole(BaseModel):
+ """
+ Remote info for Workday role.
+ """ # noqa: E501
+ role_id: StrictStr = Field(description="The id of the role.")
+ additional_properties: Dict[str, Any] = {}
+ __properties: ClassVar[List[str]] = ["role_id"]
+
+ model_config = ConfigDict(
+ populate_by_name=True,
+ validate_assignment=True,
+ protected_namespaces=(),
+ )
+
+
+ def to_str(self) -> str:
+ """Returns the string representation of the model using alias"""
+ return pprint.pformat(self.model_dump(by_alias=True))
+
+ def to_json(self) -> str:
+ """Returns the JSON representation of the model using alias"""
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
+ return json.dumps(self.to_dict())
+
+ @classmethod
+ def from_json(cls, json_str: str) -> Optional[Self]:
+ """Create an instance of ResourceRemoteInfoWorkdayRole from a JSON string"""
+ return cls.from_dict(json.loads(json_str))
+
+ def to_dict(self) -> Dict[str, Any]:
+ """Return the dictionary representation of the model using alias.
+
+ This has the following differences from calling pydantic's
+ `self.model_dump(by_alias=True)`:
+
+ * `None` is only added to the output dict for nullable fields that
+ were set at model initialization. Other fields with value `None`
+ are ignored.
+ * Fields in `self.additional_properties` are added to the output dict.
+ """
+ excluded_fields: Set[str] = set([
+ "additional_properties",
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # puts key-value pairs in additional_properties in the top level
+ if self.additional_properties is not None:
+ for _key, _value in self.additional_properties.items():
+ _dict[_key] = _value
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of ResourceRemoteInfoWorkdayRole from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "role_id": obj.get("role_id")
+ })
+ # store additional fields in additional_properties
+ for _key in obj.keys():
+ if _key not in cls.__properties:
+ _obj.additional_properties[_key] = obj.get(_key)
+
+ return _obj
+
+
diff --git a/opal_security/models/resource_type_enum.py b/opal_security/models/resource_type_enum.py
index 4087825..8c0045d 100644
--- a/opal_security/models/resource_type_enum.py
+++ b/opal_security/models/resource_type_enum.py
@@ -96,6 +96,11 @@ class ResourceTypeEnum(str, Enum):
ANTHROPIC_WORKSPACE = 'ANTHROPIC_WORKSPACE'
GIT_HUB_ORG = 'GIT_HUB_ORG'
ORACLE_FUSION_ROLE = 'ORACLE_FUSION_ROLE'
+ DEVIN_ORGANIZATION = 'DEVIN_ORGANIZATION'
+ DEVIN_ROLE = 'DEVIN_ROLE'
+ VAULT_SECRET = 'VAULT_SECRET'
+ VAULT_POLICY = 'VAULT_POLICY'
+ VAULT_OIDC_ROLE = 'VAULT_OIDC_ROLE'
@classmethod
def from_json(cls, json_str: str) -> Self:
diff --git a/opal_security/models/resource_user.py b/opal_security/models/resource_user.py
index 058cf5a..5e61150 100644
--- a/opal_security/models/resource_user.py
+++ b/opal_security/models/resource_user.py
@@ -21,6 +21,7 @@
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from opal_security.models.resource_access_level import ResourceAccessLevel
from typing import Optional, Set
from typing_extensions import Self
@@ -29,8 +30,8 @@ class ResourceUser(BaseModel):
"""
# Resource User Object ### Description The `ResourceUser` object is used to represent a user with direct access to a resource.
""" # noqa: E501
- resource_id: StrictStr = Field(description="The ID of the resource.")
- user_id: StrictStr = Field(description="The ID of the user.")
+ resource_id: UUID = Field(description="The ID of the resource.")
+ user_id: UUID = Field(description="The ID of the user.")
access_level: ResourceAccessLevel
full_name: StrictStr = Field(description="The user's full name.")
email: StrictStr = Field(description="The user's email.")
diff --git a/opal_security/models/resource_user_access_status.py b/opal_security/models/resource_user_access_status.py
index 28d7851..eac8e43 100644
--- a/opal_security/models/resource_user_access_status.py
+++ b/opal_security/models/resource_user_access_status.py
@@ -19,8 +19,9 @@
import json
from datetime import datetime
-from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from opal_security.models.resource_access_level import ResourceAccessLevel
from opal_security.models.resource_user_access_status_enum import ResourceUserAccessStatusEnum
from typing import Optional, Set
@@ -30,8 +31,8 @@ class ResourceUserAccessStatus(BaseModel):
"""
# AccessStatus Object ### Description The `AccessStatus` object is used to represent the user's access to the resource. ### Usage Example View the `AccessStatus` for a resource/user pair to determine if the user has access to the resource.
""" # noqa: E501
- resource_id: StrictStr = Field(description="The ID of the resource.")
- user_id: StrictStr = Field(description="The ID of the user.")
+ resource_id: UUID = Field(description="The ID of the resource.")
+ user_id: UUID = Field(description="The ID of the user.")
access_level: Optional[ResourceAccessLevel] = None
status: ResourceUserAccessStatusEnum
expiration_date: Optional[datetime] = Field(default=None, description="The day and time the user's access will expire.")
diff --git a/opal_security/models/resource_with_access_level.py b/opal_security/models/resource_with_access_level.py
index 69a933f..ea02cf2 100644
--- a/opal_security/models/resource_with_access_level.py
+++ b/opal_security/models/resource_with_access_level.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -27,7 +28,7 @@ class ResourceWithAccessLevel(BaseModel):
"""
Information about a resource and corresponding access level
""" # noqa: E501
- resource_id: StrictStr = Field(description="The ID of the resource.")
+ resource_id: UUID = Field(description="The ID of the resource.")
access_level_remote_id: Optional[StrictStr] = Field(default=None, description="The ID of the resource.")
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["resource_id", "access_level_remote_id"]
diff --git a/opal_security/models/reviewer_id_list.py b/opal_security/models/reviewer_id_list.py
index 53e0eb2..96ed47d 100644
--- a/opal_security/models/reviewer_id_list.py
+++ b/opal_security/models/reviewer_id_list.py
@@ -18,8 +18,9 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
from typing import Any, ClassVar, Dict, List
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -27,7 +28,7 @@ class ReviewerIDList(BaseModel):
"""
A list of reviewer IDs.
""" # noqa: E501
- reviewer_ids: List[StrictStr]
+ reviewer_ids: List[UUID]
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["reviewer_ids"]
diff --git a/opal_security/models/reviewer_stage.py b/opal_security/models/reviewer_stage.py
index 97a7ed9..5f5013b 100644
--- a/opal_security/models/reviewer_stage.py
+++ b/opal_security/models/reviewer_stage.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -30,7 +31,7 @@ class ReviewerStage(BaseModel):
require_manager_approval: StrictBool = Field(description="Whether this reviewer stage should require manager approval.")
require_admin_approval: Optional[StrictBool] = Field(default=None, description="Whether this reviewer stage should require admin approval.")
operator: StrictStr = Field(description="The operator of the reviewer stage. Admin and manager approval are also treated as reviewers.")
- owner_ids: List[StrictStr]
+ owner_ids: List[UUID]
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["require_manager_approval", "require_admin_approval", "operator", "owner_ids"]
diff --git a/opal_security/models/scoped_role_permission.py b/opal_security/models/scoped_role_permission.py
index 36e44a5..52c8a90 100644
--- a/opal_security/models/scoped_role_permission.py
+++ b/opal_security/models/scoped_role_permission.py
@@ -18,8 +18,9 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
+from pydantic import BaseModel, ConfigDict, Field, StrictBool
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from opal_security.models.role_permission_name_enum import RolePermissionNameEnum
from opal_security.models.role_permission_target_type_enum import RolePermissionTargetTypeEnum
from typing import Optional, Set
@@ -29,7 +30,7 @@ class ScopedRolePermission(BaseModel):
"""
ScopedRolePermission
""" # noqa: E501
- target_ids: Optional[List[StrictStr]] = Field(default=None, description="The IDs of the entities that this permission applies to. If empty of missing, the permission will have untargeted scope.")
+ target_ids: Optional[List[UUID]] = Field(default=None, description="The IDs of the entities that this permission applies to. If empty of missing, the permission will have untargeted scope.")
target_type: RolePermissionTargetTypeEnum
permission_name: RolePermissionNameEnum
allow_all: StrictBool
diff --git a/opal_security/models/session.py b/opal_security/models/session.py
index e94daba..d5210d6 100644
--- a/opal_security/models/session.py
+++ b/opal_security/models/session.py
@@ -19,8 +19,9 @@
import json
from datetime import datetime
-from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List
+from uuid import UUID
from opal_security.models.resource_access_level import ResourceAccessLevel
from typing import Optional, Set
from typing_extensions import Self
@@ -29,9 +30,9 @@ class Session(BaseModel):
"""
# Session Object ### Description The `Session` object is used to represent an access session. Some resources can be accessed temporarily via a time-bounded session. ### Usage Example Fetch from the `LIST Sessions` endpoint.
""" # noqa: E501
- connection_id: StrictStr = Field(description="The ID of the connection.")
- user_id: StrictStr = Field(description="The ID of the user.")
- resource_id: StrictStr = Field(description="The ID of the resource.")
+ connection_id: UUID = Field(description="The ID of the connection.")
+ user_id: UUID = Field(description="The ID of the user.")
+ resource_id: UUID = Field(description="The ID of the resource.")
access_level: ResourceAccessLevel
expiration_date: datetime = Field(description="The day and time the user's access will expire.")
additional_properties: Dict[str, Any] = {}
diff --git a/opal_security/models/sync_error.py b/opal_security/models/sync_error.py
index 030fe05..c15ecab 100644
--- a/opal_security/models/sync_error.py
+++ b/opal_security/models/sync_error.py
@@ -21,6 +21,7 @@
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -31,7 +32,7 @@ class SyncError(BaseModel):
first_seen: datetime = Field(description="The time when this error was first seen.")
last_seen: datetime = Field(description="The time when this error was most recently seen.")
error_message: StrictStr = Field(description="The error message associated with the sync error.")
- app_id: Optional[StrictStr] = Field(default=None, description="The ID of the app that the error occured for.")
+ app_id: Optional[UUID] = Field(default=None, description="The ID of the app that the error occured for.")
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["first_seen", "last_seen", "error_message", "app_id"]
diff --git a/opal_security/models/sync_task.py b/opal_security/models/sync_task.py
index 836e29e..b0d60b2 100644
--- a/opal_security/models/sync_task.py
+++ b/opal_security/models/sync_task.py
@@ -19,8 +19,9 @@
import json
from datetime import datetime
-from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -28,7 +29,7 @@ class SyncTask(BaseModel):
"""
Represents a sync task that has been completed, either successfully or with errors.
""" # noqa: E501
- id: StrictStr = Field(description="The ID of the sync task.")
+ id: UUID = Field(description="The ID of the sync task.")
completed_at: datetime = Field(description="The time when the sync task was completed.")
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["id", "completed_at"]
diff --git a/opal_security/models/tag.py b/opal_security/models/tag.py
index 3aca3db..2009477 100644
--- a/opal_security/models/tag.py
+++ b/opal_security/models/tag.py
@@ -21,6 +21,7 @@
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -28,10 +29,10 @@ class Tag(BaseModel):
"""
# Tag Object ### Description The `Tag` object is used to represent a tag. ### Usage Example Get tags from the `GET Tag` endpoint.
""" # noqa: E501
- tag_id: StrictStr = Field(description="The ID of the tag.")
+ tag_id: UUID = Field(description="The ID of the tag.")
created_at: Optional[datetime] = Field(default=None, description="The date the tag was created.")
updated_at: Optional[datetime] = Field(default=None, description="The date the tag was last updated.")
- user_creator_id: Optional[StrictStr] = Field(default=None, description="The ID of the user that created the tag.")
+ user_creator_id: Optional[UUID] = Field(default=None, description="The ID of the user that created the tag.")
key: Optional[StrictStr] = Field(default=None, description="The key of the tag.")
value: Optional[StrictStr] = Field(default=None, description="The value of the tag.")
additional_properties: Dict[str, Any] = {}
diff --git a/opal_security/models/tag_selector.py b/opal_security/models/tag_selector.py
index 2ed4a68..6952a33 100644
--- a/opal_security/models/tag_selector.py
+++ b/opal_security/models/tag_selector.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, StrictStr
from typing import Any, ClassVar, Dict, List
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -29,7 +30,7 @@ class TagSelector(BaseModel):
""" # noqa: E501
key: StrictStr
value: StrictStr
- connection_id: StrictStr
+ connection_id: UUID
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["key", "value", "connection_id"]
diff --git a/opal_security/models/third_party_provider_enum.py b/opal_security/models/third_party_provider_enum.py
index 3d307a4..576b868 100644
--- a/opal_security/models/third_party_provider_enum.py
+++ b/opal_security/models/third_party_provider_enum.py
@@ -34,12 +34,14 @@ class ThirdPartyProviderEnum(str, Enum):
LINEAR = 'LINEAR'
SERVICE_NOW = 'SERVICE_NOW'
FRESH_SERVICE = 'FRESH_SERVICE'
+ SHORTCUT = 'SHORTCUT'
PAGER_DUTY = 'PAGER_DUTY'
OPSGENIE = 'OPSGENIE'
GIT_HUB = 'GIT_HUB'
GIT_LAB = 'GIT_LAB'
GIT_LAB_CONNECTION = 'GIT_LAB_CONNECTION'
TELEPORT = 'TELEPORT'
+ SLACK = 'SLACK'
@classmethod
def from_json(cls, json_str: str) -> Self:
diff --git a/opal_security/models/uar.py b/opal_security/models/uar.py
index 223cbc3..10b4943 100644
--- a/opal_security/models/uar.py
+++ b/opal_security/models/uar.py
@@ -21,6 +21,7 @@
from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from opal_security.models.uar_reviewer_assignment_policy_enum import UARReviewerAssignmentPolicyEnum
from opal_security.models.uar_scope import UARScope
from typing import Optional, Set
@@ -30,16 +31,17 @@ class UAR(BaseModel):
"""
A user access review.
""" # noqa: E501
- uar_id: StrictStr = Field(description="The ID of the UAR.")
+ uar_id: UUID = Field(description="The ID of the UAR.")
name: StrictStr = Field(description="The name of the UAR.")
reviewer_assignment_policy: UARReviewerAssignmentPolicyEnum
send_reviewer_assignment_notification: StrictBool = Field(description="A bool representing whether to send a notification to reviewers when they're assigned a new review. Default is False.")
deadline: datetime = Field(description="The last day for reviewers to complete their access reviews.")
time_zone: StrictStr = Field(description="The time zone name (as defined by the IANA Time Zone database) used in the access review deadline and exported audit report. Default is America/Los_Angeles.")
self_review_allowed: StrictBool = Field(description="A bool representing whether to present a warning when a user is the only reviewer for themself. Default is False.")
+ instantly_action_reviews: StrictBool = Field(description="A bool representing whether to instantly action changes when reviewers submit their decision. Default is False.")
uar_scope: Optional[UARScope] = None
additional_properties: Dict[str, Any] = {}
- __properties: ClassVar[List[str]] = ["uar_id", "name", "reviewer_assignment_policy", "send_reviewer_assignment_notification", "deadline", "time_zone", "self_review_allowed", "uar_scope"]
+ __properties: ClassVar[List[str]] = ["uar_id", "name", "reviewer_assignment_policy", "send_reviewer_assignment_notification", "deadline", "time_zone", "self_review_allowed", "instantly_action_reviews", "uar_scope"]
model_config = ConfigDict(
populate_by_name=True,
@@ -109,6 +111,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"deadline": obj.get("deadline"),
"time_zone": obj.get("time_zone"),
"self_review_allowed": obj.get("self_review_allowed"),
+ "instantly_action_reviews": obj.get("instantly_action_reviews"),
"uar_scope": UARScope.from_dict(obj["uar_scope"]) if obj.get("uar_scope") is not None else None
})
# store additional fields in additional_properties
diff --git a/opal_security/models/uar_reviewer_assignment_policy_enum.py b/opal_security/models/uar_reviewer_assignment_policy_enum.py
index 9775ad2..9577288 100644
--- a/opal_security/models/uar_reviewer_assignment_policy_enum.py
+++ b/opal_security/models/uar_reviewer_assignment_policy_enum.py
@@ -21,7 +21,7 @@
class UARReviewerAssignmentPolicyEnum(str, Enum):
"""
- A policy for auto-assigning reviewers. If auto-assignment is on, specific assignments can still be manually adjusted after the access review is started. Default is Manually.
+ A policy for auto-assigning reviewers. If auto-assignment is on, specific assignments can still be manually adjusted after the access review is started. Default is Manually. BY_OWNING_TEAM_ADMIN assigns reviews to resource admins in round-robin fashion. BY_OWNING_TEAM_ADMIN_ALL assigns reviews to all resource admins. BY_APPROVERS assigns reviews to resource approvers in round-robin fashion. BY_APPROVERS_ALL assigns reviews to all resource approvers.
"""
"""
@@ -29,7 +29,10 @@ class UARReviewerAssignmentPolicyEnum(str, Enum):
"""
MANUALLY = 'MANUALLY'
BY_OWNING_TEAM_ADMIN = 'BY_OWNING_TEAM_ADMIN'
+ BY_OWNING_TEAM_ADMIN_ALL = 'BY_OWNING_TEAM_ADMIN_ALL'
BY_MANAGER = 'BY_MANAGER'
+ BY_APPROVERS = 'BY_APPROVERS'
+ BY_APPROVERS_ALL = 'BY_APPROVERS_ALL'
@classmethod
def from_json(cls, json_str: str) -> Self:
diff --git a/opal_security/models/uar_scope.py b/opal_security/models/uar_scope.py
index efe3c08..35add79 100644
--- a/opal_security/models/uar_scope.py
+++ b/opal_security/models/uar_scope.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from opal_security.models.group_type_enum import GroupTypeEnum
from opal_security.models.resource_type_enum import ResourceTypeEnum
from opal_security.models.tag_filter import TagFilter
@@ -31,11 +32,11 @@ class UARScope(BaseModel):
If set, the access review will only contain resources and groups that match at least one of the filters in scope.
""" # noqa: E501
group_visibility: Optional[StrictStr] = Field(default=None, description="Specifies what users can see during an Access Review")
- users: Optional[List[StrictStr]] = Field(default=None, description="The access review will only include the following users. If any users are selected, any entity filters will be applied to only the entities that the selected users have access to.")
+ users: Optional[List[UUID]] = Field(default=None, description="The access review will only include the following users. If any users are selected, any entity filters will be applied to only the entities that the selected users have access to.")
filter_operator: Optional[StrictStr] = Field(default=None, description="Specifies whether entities must match all (AND) or any (OR) of the filters.")
- entities: Optional[List[StrictStr]] = Field(default=None, description="This access review will include resources and groups with ids in the given strings.")
- apps: Optional[List[StrictStr]] = Field(default=None, description="This access review will include items in the specified applications")
- admins: Optional[List[StrictStr]] = Field(default=None, description="This access review will include resources and groups who are owned by one of the owners corresponding to the given IDs.")
+ entities: Optional[List[UUID]] = Field(default=None, description="This access review will include resources and groups with ids in the given strings.")
+ apps: Optional[List[UUID]] = Field(default=None, description="This access review will include items in the specified applications")
+ admins: Optional[List[UUID]] = Field(default=None, description="This access review will include resources and groups who are owned by one of the owners corresponding to the given IDs.")
group_types: Optional[List[GroupTypeEnum]] = Field(default=None, description="This access review will include items of the specified group types")
resource_types: Optional[List[ResourceTypeEnum]] = Field(default=None, description="This access review will include items of the specified resource types")
include_group_bindings: Optional[StrictBool] = None
diff --git a/opal_security/models/update_access_rule_info.py b/opal_security/models/update_access_rule_info.py
index 934de38..0fa2f16 100644
--- a/opal_security/models/update_access_rule_info.py
+++ b/opal_security/models/update_access_rule_info.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
from typing import Any, ClassVar, Dict, List
+from uuid import UUID
from opal_security.models.rule_clauses import RuleClauses
from typing import Optional, Set
from typing_extensions import Self
@@ -30,7 +31,7 @@ class UpdateAccessRuleInfo(BaseModel):
""" # noqa: E501
name: StrictStr = Field(description="The name of the access rule.")
description: StrictStr = Field(description="A description of the group.")
- admin_owner_id: StrictStr = Field(description="The ID of the owner of the group.")
+ admin_owner_id: UUID = Field(description="The ID of the owner of the group.")
status: StrictStr = Field(description="The status of the access rule.")
rule_clauses: RuleClauses = Field(alias="ruleClauses")
additional_properties: Dict[str, Any] = {}
diff --git a/opal_security/models/update_configuration_template_info.py b/opal_security/models/update_configuration_template_info.py
index a242f4e..90b83e7 100644
--- a/opal_security/models/update_configuration_template_info.py
+++ b/opal_security/models/update_configuration_template_info.py
@@ -21,6 +21,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from typing_extensions import Annotated
+from uuid import UUID
from opal_security.models.create_request_configuration_info_list import CreateRequestConfigurationInfoList
from opal_security.models.request_configuration import RequestConfiguration
from opal_security.models.ticket_propagation_configuration import TicketPropagationConfiguration
@@ -32,15 +33,15 @@ class UpdateConfigurationTemplateInfo(BaseModel):
"""
# UpdateConfigurationTemplateInfo Object ### Description The `ConfigurationTemplate` object is used to represent an update to a configuration template. ### Usage Example Use in the `PUT Configuration Templates` endpoint.
""" # noqa: E501
- configuration_template_id: StrictStr = Field(description="The ID of the configuration template.")
+ configuration_template_id: UUID = Field(description="The ID of the configuration template.")
name: Optional[StrictStr] = Field(default=None, description="The name of the configuration template.")
- admin_owner_id: Optional[StrictStr] = Field(default=None, description="The ID of the owner of the configuration template.")
+ admin_owner_id: Optional[UUID] = Field(default=None, description="The ID of the owner of the configuration template.")
visibility: Optional[VisibilityInfo] = Field(default=None, description="The visibility info of the configuration template.")
- linked_audit_message_channel_ids: Optional[List[StrictStr]] = Field(default=None, description="The IDs of the audit message channels linked to the configuration template.")
+ linked_audit_message_channel_ids: Optional[List[UUID]] = Field(default=None, description="The IDs of the audit message channels linked to the configuration template.")
request_configurations: Optional[List[RequestConfiguration]] = Field(default=None, description="The request configuration list linked to the configuration template.")
request_configuration_list: Optional[CreateRequestConfigurationInfoList] = Field(default=None, description="The request configuration list linked to the configuration template. Deprecated in favor of `request_configurations`.")
- member_oncall_schedule_ids: Optional[List[StrictStr]] = Field(default=None, description="The IDs of the on-call schedules linked to the configuration template.")
- break_glass_user_ids: Optional[List[StrictStr]] = Field(default=None, description="The IDs of the break glass users linked to the configuration template.")
+ member_oncall_schedule_ids: Optional[List[UUID]] = Field(default=None, description="The IDs of the on-call schedules linked to the configuration template.")
+ break_glass_user_ids: Optional[List[UUID]] = Field(default=None, description="The IDs of the break glass users linked to the configuration template.")
require_mfa_to_approve: Optional[StrictBool] = Field(default=None, description="A bool representing whether or not to require MFA for reviewers to approve requests for this configuration template.")
require_mfa_to_connect: Optional[StrictBool] = Field(default=None, description="A bool representing whether or not to require MFA to connect to resources associated with this configuration template.")
ticket_propagation: Optional[TicketPropagationConfiguration] = None
diff --git a/opal_security/models/update_group_binding_info.py b/opal_security/models/update_group_binding_info.py
index e96e883..aeb95af 100644
--- a/opal_security/models/update_group_binding_info.py
+++ b/opal_security/models/update_group_binding_info.py
@@ -18,8 +18,9 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict, Field, StrictStr
+from pydantic import BaseModel, ConfigDict, Field
from typing import Any, ClassVar, Dict, List
+from uuid import UUID
from opal_security.models.create_group_binding_info_groups_inner import CreateGroupBindingInfoGroupsInner
from typing import Optional, Set
from typing_extensions import Self
@@ -28,8 +29,8 @@ class UpdateGroupBindingInfo(BaseModel):
"""
# UpdateGroupBindingInfo Object ### Description The `UpdateGroupBindingInfo` object is used as an input to the UpdateGroupBinding API.
""" # noqa: E501
- group_binding_id: StrictStr = Field(description="The ID of the group binding.")
- source_group_id: StrictStr = Field(description="The ID of the source group.")
+ group_binding_id: UUID = Field(description="The ID of the group binding.")
+ source_group_id: UUID = Field(description="The ID of the source group.")
groups: List[CreateGroupBindingInfoGroupsInner] = Field(description="The list of groups.")
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["group_binding_id", "source_group_id", "groups"]
diff --git a/opal_security/models/update_group_info.py b/opal_security/models/update_group_info.py
index e3fe3d3..3893c1f 100644
--- a/opal_security/models/update_group_info.py
+++ b/opal_security/models/update_group_info.py
@@ -21,6 +21,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from typing_extensions import Annotated
+from uuid import UUID
from opal_security.models.create_request_configuration_info_list import CreateRequestConfigurationInfoList
from opal_security.models.request_configuration import RequestConfiguration
from opal_security.models.risk_sensitivity_enum import RiskSensitivityEnum
@@ -31,22 +32,22 @@ class UpdateGroupInfo(BaseModel):
"""
# UpdateGroupInfo Object ### Description The `UpdateGroupInfo` object is used as an input to the UpdateGroup API.
""" # noqa: E501
- group_id: StrictStr = Field(description="The ID of the group.")
+ group_id: UUID = Field(description="The ID of the group.")
name: Optional[StrictStr] = Field(default=None, description="The name of the group.")
description: Optional[StrictStr] = Field(default=None, description="A description of the group.")
- admin_owner_id: Optional[StrictStr] = Field(default=None, description="The ID of the owner of the group.")
+ admin_owner_id: Optional[UUID] = Field(default=None, description="The ID of the owner of the group.")
max_duration: Optional[StrictInt] = Field(default=None, description="The maximum duration for which the group can be requested (in minutes). Use -1 to set to indefinite. Deprecated in favor of `request_configurations`.")
recommended_duration: Optional[StrictInt] = Field(default=None, description="The recommended duration for which the group should be requested (in minutes). Will be the default value in a request. Use -1 to set to indefinite and 0 to unset. Deprecated in favor of `request_configurations`.")
require_manager_approval: Optional[StrictBool] = Field(default=None, description="A bool representing whether or not access requests to the group require manager approval. Deprecated in favor of `request_configurations`.")
require_support_ticket: Optional[StrictBool] = Field(default=None, description="A bool representing whether or not access requests to the group require an access ticket. Deprecated in favor of `request_configurations`.")
- folder_id: Optional[StrictStr] = Field(default=None, description="The ID of the folder that the group is located in.")
+ folder_id: Optional[UUID] = Field(default=None, description="The ID of the folder that the group is located in.")
require_mfa_to_approve: Optional[StrictBool] = Field(default=None, description="A bool representing whether or not to require MFA for reviewers to approve requests for this group.")
require_mfa_to_request: Optional[StrictBool] = Field(default=None, description="A bool representing whether or not to require MFA for requesting access to this group. Deprecated in favor of `request_configurations`.")
auto_approval: Optional[StrictBool] = Field(default=None, description="A bool representing whether or not to automatically approve requests to this group. Deprecated in favor of `request_configurations`.")
- configuration_template_id: Optional[StrictStr] = Field(default=None, description="The ID of the associated configuration template.")
- request_template_id: Optional[StrictStr] = Field(default=None, description="The ID of the associated request template. Deprecated in favor of `request_configurations`.")
+ configuration_template_id: Optional[UUID] = Field(default=None, description="The ID of the associated configuration template.")
+ request_template_id: Optional[UUID] = Field(default=None, description="The ID of the associated request template. Deprecated in favor of `request_configurations`.")
is_requestable: Optional[StrictBool] = Field(default=None, description="A bool representing whether or not to allow access requests to this group. Deprecated in favor of `request_configurations`.")
- group_leader_user_ids: Optional[List[StrictStr]] = Field(default=None, description="A list of User IDs for the group leaders of the group")
+ group_leader_user_ids: Optional[List[UUID]] = Field(default=None, description="A list of User IDs for the group leaders of the group")
extensions_duration_in_minutes: Optional[StrictInt] = Field(default=None, description="The duration for which access can be extended (in minutes). Deprecated, set the extension duration in the request_configuration you want it to apply to.")
request_configurations: Optional[List[RequestConfiguration]] = Field(default=None, description="The request configuration list of the configuration template. If not provided, the default request configuration will be used.")
request_configuration_list: Optional[CreateRequestConfigurationInfoList] = Field(default=None, description="The request configuration list of the configuration template. If not provided, the default request configuration will be used. Deprecated in favor of `request_configurations`.")
diff --git a/opal_security/models/update_idp_group_mappings_request_mappings_inner.py b/opal_security/models/update_idp_group_mappings_request_mappings_inner.py
index ae2964d..56b566c 100644
--- a/opal_security/models/update_idp_group_mappings_request_mappings_inner.py
+++ b/opal_security/models/update_idp_group_mappings_request_mappings_inner.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, StrictBool, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -27,7 +28,7 @@ class UpdateIdpGroupMappingsRequestMappingsInner(BaseModel):
"""
UpdateIdpGroupMappingsRequestMappingsInner
""" # noqa: E501
- group_id: Optional[StrictStr] = None
+ group_id: Optional[UUID] = None
alias: Optional[StrictStr] = None
hidden_from_end_user: Optional[StrictBool] = None
additional_properties: Dict[str, Any] = {}
diff --git a/opal_security/models/update_owner_info.py b/opal_security/models/update_owner_info.py
index dff1219..6630ed4 100644
--- a/opal_security/models/update_owner_info.py
+++ b/opal_security/models/update_owner_info.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -27,12 +28,12 @@ class UpdateOwnerInfo(BaseModel):
"""
# UpdateOwnerInfo Object ### Description The `UpdateOwnerInfo` object is used as an input to the UpdateOwner API.
""" # noqa: E501
- owner_id: StrictStr = Field(description="The ID of the owner.")
+ owner_id: UUID = Field(description="The ID of the owner.")
name: Optional[StrictStr] = Field(default=None, description="The name of the owner.")
description: Optional[StrictStr] = Field(default=None, description="A description of the owner.")
access_request_escalation_period: Optional[StrictInt] = Field(default=None, description="The amount of time (in minutes) before the next reviewer is notified. Use 0 to remove escalation policy.")
reviewer_message_channel_id: Optional[StrictStr] = Field(default=None, description="The message channel id for the reviewer channel. Use \"\" to remove an existing message channel.")
- source_group_id: Optional[StrictStr] = Field(default=None, description="Sync this owner's user list with a source group. Use \"\" to remove an existing source group.")
+ source_group_id: Optional[UUID] = Field(default=None, description="Sync this owner's user list with a source group. Use \"\" to remove an existing source group.")
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["owner_id", "name", "description", "access_request_escalation_period", "reviewer_message_channel_id", "source_group_id"]
diff --git a/opal_security/models/update_resource_info.py b/opal_security/models/update_resource_info.py
index 14efb94..22774f5 100644
--- a/opal_security/models/update_resource_info.py
+++ b/opal_security/models/update_resource_info.py
@@ -21,6 +21,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
from typing_extensions import Annotated
+from uuid import UUID
from opal_security.models.create_request_configuration_info_list import CreateRequestConfigurationInfoList
from opal_security.models.request_configuration import RequestConfiguration
from opal_security.models.risk_sensitivity_enum import RiskSensitivityEnum
@@ -32,15 +33,15 @@ class UpdateResourceInfo(BaseModel):
"""
# UpdateResourceInfo Object ### Description The `UpdateResourceInfo` object is used as an input to the UpdateResource API.
""" # noqa: E501
- resource_id: StrictStr = Field(description="The ID of the resource.")
+ resource_id: UUID = Field(description="The ID of the resource.")
name: Optional[StrictStr] = Field(default=None, description="The name of the resource.")
description: Optional[StrictStr] = Field(default=None, description="A description of the resource.")
- admin_owner_id: Optional[StrictStr] = Field(default=None, description="The ID of the owner of the resource.")
+ admin_owner_id: Optional[UUID] = Field(default=None, description="The ID of the owner of the resource.")
max_duration: Optional[StrictInt] = Field(default=None, description="The maximum duration for which the resource can be requested (in minutes). Use -1 to set to indefinite. Deprecated in favor of `request_configurations`.")
recommended_duration: Optional[StrictInt] = Field(default=None, description="The recommended duration for which the resource should be requested (in minutes). Will be the default value in a request. Use -1 to set to indefinite and 0 to unset. Deprecated in favor of `request_configurations`.")
require_manager_approval: Optional[StrictBool] = Field(default=None, description="A bool representing whether or not access requests to the resource require manager approval.")
require_support_ticket: Optional[StrictBool] = Field(default=None, description="A bool representing whether or not access requests to the resource require an access ticket. Deprecated in favor of `request_configurations`.")
- folder_id: Optional[StrictStr] = Field(default=None, description="The ID of the folder that the resource is located in.")
+ folder_id: Optional[UUID] = Field(default=None, description="The ID of the folder that the resource is located in.")
require_mfa_to_approve: Optional[StrictBool] = Field(default=None, description="A bool representing whether or not to require MFA for reviewers to approve requests for this resource.")
require_mfa_to_request: Optional[StrictBool] = Field(default=None, description="A bool representing whether or not to require MFA for requesting access to this resource. Deprecated in favor of `request_configurations`.")
require_mfa_to_connect: Optional[StrictBool] = Field(default=None, description="A bool representing whether or not to require MFA to connect to this resource.")
@@ -48,8 +49,8 @@ class UpdateResourceInfo(BaseModel):
ticket_propagation: Optional[TicketPropagationConfiguration] = None
custom_request_notification: Optional[Annotated[str, Field(strict=True, max_length=800)]] = Field(default=None, description="Custom request notification sent upon request approval.")
risk_sensitivity_override: Optional[RiskSensitivityEnum] = None
- configuration_template_id: Optional[StrictStr] = Field(default=None, description="The ID of the associated configuration template.")
- request_template_id: Optional[StrictStr] = Field(default=None, description="The ID of the associated request template. Deprecated in favor of `request_configurations`.")
+ configuration_template_id: Optional[UUID] = Field(default=None, description="The ID of the associated configuration template.")
+ request_template_id: Optional[UUID] = Field(default=None, description="The ID of the associated request template. Deprecated in favor of `request_configurations`.")
is_requestable: Optional[StrictBool] = Field(default=None, description="A bool representing whether or not to allow access requests to this resource. Deprecated in favor of `request_configurations`.")
extensions_duration_in_minutes: Optional[StrictInt] = Field(default=None, description="The duration for which access can be extended (in minutes). Deprecated, set the extension duration in the request_configuration you want it to apply to.")
request_configurations: Optional[List[RequestConfiguration]] = Field(default=None, description="A list of configurations for requests to this resource. If not provided, the default request configuration will be used.")
diff --git a/opal_security/models/user.py b/opal_security/models/user.py
index 39eca87..8552d74 100644
--- a/opal_security/models/user.py
+++ b/opal_security/models/user.py
@@ -20,6 +20,7 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from opal_security.models.user_hr_idp_status_enum import UserHrIdpStatusEnum
from typing import Optional, Set
from typing_extensions import Self
@@ -28,7 +29,7 @@ class User(BaseModel):
"""
# User Object ### Description The `User` object is used to represent a user. ### Usage Example Fetch from the `LIST Sessions` endpoint.
""" # noqa: E501
- user_id: StrictStr = Field(description="The ID of the user.")
+ user_id: UUID = Field(description="The ID of the user.")
email: StrictStr = Field(description="The email of the user.")
full_name: StrictStr = Field(description="The full name of the user.")
first_name: StrictStr = Field(description="The first name of the user.")
diff --git a/opal_security/models/user_id_list.py b/opal_security/models/user_id_list.py
index b862ee7..1069146 100644
--- a/opal_security/models/user_id_list.py
+++ b/opal_security/models/user_id_list.py
@@ -18,8 +18,9 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
from typing import Any, ClassVar, Dict, List
+from uuid import UUID
from typing import Optional, Set
from typing_extensions import Self
@@ -27,7 +28,7 @@ class UserIDList(BaseModel):
"""
A list of user IDs.
""" # noqa: E501
- user_ids: List[StrictStr]
+ user_ids: List[UUID]
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["user_ids"]
diff --git a/opal_security/models/visibility_info.py b/opal_security/models/visibility_info.py
index 1c8e11c..6a7f391 100644
--- a/opal_security/models/visibility_info.py
+++ b/opal_security/models/visibility_info.py
@@ -18,8 +18,9 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict, StrictStr
+from pydantic import BaseModel, ConfigDict
from typing import Any, ClassVar, Dict, List, Optional
+from uuid import UUID
from opal_security.models.visibility_type_enum import VisibilityTypeEnum
from typing import Optional, Set
from typing_extensions import Self
@@ -29,7 +30,7 @@ class VisibilityInfo(BaseModel):
Visibility infomation of an entity.
""" # noqa: E501
visibility: VisibilityTypeEnum
- visibility_group_ids: Optional[List[StrictStr]] = None
+ visibility_group_ids: Optional[List[UUID]] = None
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["visibility", "visibility_group_ids"]
diff --git a/opal_security/rest.py b/opal_security/rest.py
index 34aa2ca..ade935c 100644
--- a/opal_security/rest.py
+++ b/opal_security/rest.py
@@ -49,12 +49,17 @@ def read(self):
self.data = self.response.data
return self.data
+ @property
+ def headers(self):
+ """Returns a dictionary of response headers."""
+ return self.response.headers
+
def getheaders(self):
- """Returns a dictionary of the response headers."""
+ """Returns a dictionary of the response headers; use ``headers`` instead."""
return self.response.headers
def getheader(self, name, default=None):
- """Returns a given response header."""
+ """Returns a given response header; use ``headers.get()`` instead."""
return self.response.headers.get(name, default)
@@ -77,6 +82,7 @@ def __init__(self, configuration) -> None:
"ca_certs": configuration.ssl_ca_cert,
"cert_file": configuration.cert_file,
"key_file": configuration.key_file,
+ "ca_cert_data": configuration.ca_cert_data,
}
if configuration.assert_hostname is not None:
pool_args['assert_hostname'] = (
diff --git a/pyproject.toml b/pyproject.toml
index ed45f2a..bfd1432 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,23 +1,28 @@
-[tool.poetry]
+[project]
name = "opal_security"
version = "1.0.0"
description = "Opal API"
-authors = ["Opal Team "]
-license = "NoLicense"
+authors = [
+ {name = "Opal Team",email = "hello@opal.dev"},
+]
readme = "README.md"
-repository = "https://github.com/opalsecurity/opal-python"
keywords = ["OpenAPI", "OpenAPI-Generator", "Opal API"]
-include = ["opal_security/py.typed"]
+requires-python = ">=3.9"
-[tool.poetry.dependencies]
-python = "^3.8"
+dependencies = [
+ "urllib3 (>=2.1.0,<3.0.0)",
+ "python-dateutil (>=2.8.2)",
+ "pydantic (>=2)",
+ "typing-extensions (>=4.7.1)",
+]
-urllib3 = ">= 1.25.3 < 3.0.0"
-python-dateutil = ">= 2.8.2"
-pydantic = ">= 2"
-typing-extensions = ">= 4.7.1"
+[project.urls]
+Repository = "https://github.com/opalsecurity/opal-python"
+
+[tool.poetry]
+requires-poetry = ">=2.0"
-[tool.poetry.dev-dependencies]
+[tool.poetry.group.dev.dependencies]
pytest = ">= 7.2.1"
pytest-cov = ">= 2.8.1"
tox = ">= 3.9.0"
diff --git a/requirements.txt b/requirements.txt
index 67f7f68..6cbb2b9 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,4 +1,4 @@
-urllib3 >= 1.25.3, < 3.0.0
+urllib3 >= 2.1.0, < 3.0.0
python_dateutil >= 2.8.2
pydantic >= 2
typing-extensions >= 4.7.1
diff --git a/setup.py b/setup.py
index 2ea68f0..95ffa7a 100644
--- a/setup.py
+++ b/setup.py
@@ -12,7 +12,6 @@
Do not edit the class manually.
""" # noqa: E501
-
from setuptools import setup, find_packages # noqa: H301
# To install the library, run the following
diff --git a/test/test_group_remote_info_aws_sso_group.py b/test/test_group_remote_info_aws_sso_group.py
new file mode 100644
index 0000000..0f94376
--- /dev/null
+++ b/test/test_group_remote_info_aws_sso_group.py
@@ -0,0 +1,53 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from opal_security.models.group_remote_info_aws_sso_group import GroupRemoteInfoAwsSsoGroup
+
+class TestGroupRemoteInfoAwsSsoGroup(unittest.TestCase):
+ """GroupRemoteInfoAwsSsoGroup unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> GroupRemoteInfoAwsSsoGroup:
+ """Test GroupRemoteInfoAwsSsoGroup
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `GroupRemoteInfoAwsSsoGroup`
+ """
+ model = GroupRemoteInfoAwsSsoGroup()
+ if include_optional:
+ return GroupRemoteInfoAwsSsoGroup(
+ group_id = '898931321'
+ )
+ else:
+ return GroupRemoteInfoAwsSsoGroup(
+ group_id = '898931321',
+ )
+ """
+
+ def testGroupRemoteInfoAwsSsoGroup(self):
+ """Test GroupRemoteInfoAwsSsoGroup"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_group_remote_info_connector_group.py b/test/test_group_remote_info_connector_group.py
new file mode 100644
index 0000000..0b4c876
--- /dev/null
+++ b/test/test_group_remote_info_connector_group.py
@@ -0,0 +1,53 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from opal_security.models.group_remote_info_connector_group import GroupRemoteInfoConnectorGroup
+
+class TestGroupRemoteInfoConnectorGroup(unittest.TestCase):
+ """GroupRemoteInfoConnectorGroup unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> GroupRemoteInfoConnectorGroup:
+ """Test GroupRemoteInfoConnectorGroup
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `GroupRemoteInfoConnectorGroup`
+ """
+ model = GroupRemoteInfoConnectorGroup()
+ if include_optional:
+ return GroupRemoteInfoConnectorGroup(
+ group_id = '898931321'
+ )
+ else:
+ return GroupRemoteInfoConnectorGroup(
+ group_id = '898931321',
+ )
+ """
+
+ def testGroupRemoteInfoConnectorGroup(self):
+ """Test GroupRemoteInfoConnectorGroup"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_group_remote_info_databricks_account_group.py b/test/test_group_remote_info_databricks_account_group.py
new file mode 100644
index 0000000..778b0f5
--- /dev/null
+++ b/test/test_group_remote_info_databricks_account_group.py
@@ -0,0 +1,53 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from opal_security.models.group_remote_info_databricks_account_group import GroupRemoteInfoDatabricksAccountGroup
+
+class TestGroupRemoteInfoDatabricksAccountGroup(unittest.TestCase):
+ """GroupRemoteInfoDatabricksAccountGroup unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> GroupRemoteInfoDatabricksAccountGroup:
+ """Test GroupRemoteInfoDatabricksAccountGroup
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `GroupRemoteInfoDatabricksAccountGroup`
+ """
+ model = GroupRemoteInfoDatabricksAccountGroup()
+ if include_optional:
+ return GroupRemoteInfoDatabricksAccountGroup(
+ group_id = '898931321'
+ )
+ else:
+ return GroupRemoteInfoDatabricksAccountGroup(
+ group_id = '898931321',
+ )
+ """
+
+ def testGroupRemoteInfoDatabricksAccountGroup(self):
+ """Test GroupRemoteInfoDatabricksAccountGroup"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_group_remote_info_devin_group.py b/test/test_group_remote_info_devin_group.py
new file mode 100644
index 0000000..52edef1
--- /dev/null
+++ b/test/test_group_remote_info_devin_group.py
@@ -0,0 +1,53 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from opal_security.models.group_remote_info_devin_group import GroupRemoteInfoDevinGroup
+
+class TestGroupRemoteInfoDevinGroup(unittest.TestCase):
+ """GroupRemoteInfoDevinGroup unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> GroupRemoteInfoDevinGroup:
+ """Test GroupRemoteInfoDevinGroup
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `GroupRemoteInfoDevinGroup`
+ """
+ model = GroupRemoteInfoDevinGroup()
+ if include_optional:
+ return GroupRemoteInfoDevinGroup(
+ group_name = 'devin-group-01'
+ )
+ else:
+ return GroupRemoteInfoDevinGroup(
+ group_name = 'devin-group-01',
+ )
+ """
+
+ def testGroupRemoteInfoDevinGroup(self):
+ """Test GroupRemoteInfoDevinGroup"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_group_remote_info_incidentio_on_call_schedule.py b/test/test_group_remote_info_incidentio_on_call_schedule.py
new file mode 100644
index 0000000..781f4fa
--- /dev/null
+++ b/test/test_group_remote_info_incidentio_on_call_schedule.py
@@ -0,0 +1,53 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from opal_security.models.group_remote_info_incidentio_on_call_schedule import GroupRemoteInfoIncidentioOnCallSchedule
+
+class TestGroupRemoteInfoIncidentioOnCallSchedule(unittest.TestCase):
+ """GroupRemoteInfoIncidentioOnCallSchedule unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> GroupRemoteInfoIncidentioOnCallSchedule:
+ """Test GroupRemoteInfoIncidentioOnCallSchedule
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `GroupRemoteInfoIncidentioOnCallSchedule`
+ """
+ model = GroupRemoteInfoIncidentioOnCallSchedule()
+ if include_optional:
+ return GroupRemoteInfoIncidentioOnCallSchedule(
+ schedule_id = '01HZ8XQM9ZQX8RKMZQ8ZQX8RK'
+ )
+ else:
+ return GroupRemoteInfoIncidentioOnCallSchedule(
+ schedule_id = '01HZ8XQM9ZQX8RKMZQ8ZQX8RK',
+ )
+ """
+
+ def testGroupRemoteInfoIncidentioOnCallSchedule(self):
+ """Test GroupRemoteInfoIncidentioOnCallSchedule"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_group_remote_info_pagerduty_on_call_schedule.py b/test/test_group_remote_info_pagerduty_on_call_schedule.py
new file mode 100644
index 0000000..b04e816
--- /dev/null
+++ b/test/test_group_remote_info_pagerduty_on_call_schedule.py
@@ -0,0 +1,53 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from opal_security.models.group_remote_info_pagerduty_on_call_schedule import GroupRemoteInfoPagerdutyOnCallSchedule
+
+class TestGroupRemoteInfoPagerdutyOnCallSchedule(unittest.TestCase):
+ """GroupRemoteInfoPagerdutyOnCallSchedule unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> GroupRemoteInfoPagerdutyOnCallSchedule:
+ """Test GroupRemoteInfoPagerdutyOnCallSchedule
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `GroupRemoteInfoPagerdutyOnCallSchedule`
+ """
+ model = GroupRemoteInfoPagerdutyOnCallSchedule()
+ if include_optional:
+ return GroupRemoteInfoPagerdutyOnCallSchedule(
+ schedule_id = 'PNZNINN'
+ )
+ else:
+ return GroupRemoteInfoPagerdutyOnCallSchedule(
+ schedule_id = 'PNZNINN',
+ )
+ """
+
+ def testGroupRemoteInfoPagerdutyOnCallSchedule(self):
+ """Test GroupRemoteInfoPagerdutyOnCallSchedule"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_group_remote_info_rootly_on_call_schedule.py b/test/test_group_remote_info_rootly_on_call_schedule.py
new file mode 100644
index 0000000..348177a
--- /dev/null
+++ b/test/test_group_remote_info_rootly_on_call_schedule.py
@@ -0,0 +1,53 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from opal_security.models.group_remote_info_rootly_on_call_schedule import GroupRemoteInfoRootlyOnCallSchedule
+
+class TestGroupRemoteInfoRootlyOnCallSchedule(unittest.TestCase):
+ """GroupRemoteInfoRootlyOnCallSchedule unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> GroupRemoteInfoRootlyOnCallSchedule:
+ """Test GroupRemoteInfoRootlyOnCallSchedule
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `GroupRemoteInfoRootlyOnCallSchedule`
+ """
+ model = GroupRemoteInfoRootlyOnCallSchedule()
+ if include_optional:
+ return GroupRemoteInfoRootlyOnCallSchedule(
+ schedule_id = '01HZ8XQM9ZQX8RKMZQ8ZQX8RK'
+ )
+ else:
+ return GroupRemoteInfoRootlyOnCallSchedule(
+ schedule_id = '01HZ8XQM9ZQX8RKMZQ8ZQX8RK',
+ )
+ """
+
+ def testGroupRemoteInfoRootlyOnCallSchedule(self):
+ """Test GroupRemoteInfoRootlyOnCallSchedule"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_group_remote_info_tailscale_group.py b/test/test_group_remote_info_tailscale_group.py
new file mode 100644
index 0000000..b101694
--- /dev/null
+++ b/test/test_group_remote_info_tailscale_group.py
@@ -0,0 +1,53 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from opal_security.models.group_remote_info_tailscale_group import GroupRemoteInfoTailscaleGroup
+
+class TestGroupRemoteInfoTailscaleGroup(unittest.TestCase):
+ """GroupRemoteInfoTailscaleGroup unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> GroupRemoteInfoTailscaleGroup:
+ """Test GroupRemoteInfoTailscaleGroup
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `GroupRemoteInfoTailscaleGroup`
+ """
+ model = GroupRemoteInfoTailscaleGroup()
+ if include_optional:
+ return GroupRemoteInfoTailscaleGroup(
+ group_id = '898931321'
+ )
+ else:
+ return GroupRemoteInfoTailscaleGroup(
+ group_id = '898931321',
+ )
+ """
+
+ def testGroupRemoteInfoTailscaleGroup(self):
+ """Test GroupRemoteInfoTailscaleGroup"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_rds_engine_enum.py b/test/test_rds_engine_enum.py
new file mode 100644
index 0000000..1606363
--- /dev/null
+++ b/test/test_rds_engine_enum.py
@@ -0,0 +1,34 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from opal_security.models.rds_engine_enum import RDSEngineEnum
+
+class TestRDSEngineEnum(unittest.TestCase):
+ """RDSEngineEnum unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def testRDSEngineEnum(self):
+ """Test RDSEngineEnum"""
+ # inst = RDSEngineEnum()
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_resource_remote_info_aws_rds_cluster.py b/test/test_resource_remote_info_aws_rds_cluster.py
new file mode 100644
index 0000000..a3ef694
--- /dev/null
+++ b/test/test_resource_remote_info_aws_rds_cluster.py
@@ -0,0 +1,63 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from opal_security.models.resource_remote_info_aws_rds_cluster import ResourceRemoteInfoAwsRdsCluster
+
+class TestResourceRemoteInfoAwsRdsCluster(unittest.TestCase):
+ """ResourceRemoteInfoAwsRdsCluster unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ResourceRemoteInfoAwsRdsCluster:
+ """Test ResourceRemoteInfoAwsRdsCluster
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ResourceRemoteInfoAwsRdsCluster`
+ """
+ model = ResourceRemoteInfoAwsRdsCluster()
+ if include_optional:
+ return ResourceRemoteInfoAwsRdsCluster(
+ cluster_id = 'demo-mysql-cluster',
+ region = 'us-east-2',
+ resource_id = 'cluster-AOO8V0XUCNU13XLZXQDQRSN0NQ',
+ account_id = '234234234234',
+ database_name = 'mydatabase',
+ engine = 'MYSQL'
+ )
+ else:
+ return ResourceRemoteInfoAwsRdsCluster(
+ cluster_id = 'demo-mysql-cluster',
+ region = 'us-east-2',
+ resource_id = 'cluster-AOO8V0XUCNU13XLZXQDQRSN0NQ',
+ account_id = '234234234234',
+ database_name = 'mydatabase',
+ engine = 'MYSQL',
+ )
+ """
+
+ def testResourceRemoteInfoAwsRdsCluster(self):
+ """Test ResourceRemoteInfoAwsRdsCluster"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_resource_remote_info_databricks_account_service_principal.py b/test/test_resource_remote_info_databricks_account_service_principal.py
new file mode 100644
index 0000000..0eb9df9
--- /dev/null
+++ b/test/test_resource_remote_info_databricks_account_service_principal.py
@@ -0,0 +1,55 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from opal_security.models.resource_remote_info_databricks_account_service_principal import ResourceRemoteInfoDatabricksAccountServicePrincipal
+
+class TestResourceRemoteInfoDatabricksAccountServicePrincipal(unittest.TestCase):
+ """ResourceRemoteInfoDatabricksAccountServicePrincipal unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ResourceRemoteInfoDatabricksAccountServicePrincipal:
+ """Test ResourceRemoteInfoDatabricksAccountServicePrincipal
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ResourceRemoteInfoDatabricksAccountServicePrincipal`
+ """
+ model = ResourceRemoteInfoDatabricksAccountServicePrincipal()
+ if include_optional:
+ return ResourceRemoteInfoDatabricksAccountServicePrincipal(
+ application_id = '00000000-0000-0000-0000-000000000000',
+ resource_id = '00000000-0000-0000-0000-000000000000'
+ )
+ else:
+ return ResourceRemoteInfoDatabricksAccountServicePrincipal(
+ application_id = '00000000-0000-0000-0000-000000000000',
+ resource_id = '00000000-0000-0000-0000-000000000000',
+ )
+ """
+
+ def testResourceRemoteInfoDatabricksAccountServicePrincipal(self):
+ """Test ResourceRemoteInfoDatabricksAccountServicePrincipal"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_resource_remote_info_devin_organization.py b/test/test_resource_remote_info_devin_organization.py
new file mode 100644
index 0000000..23e5de2
--- /dev/null
+++ b/test/test_resource_remote_info_devin_organization.py
@@ -0,0 +1,53 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from opal_security.models.resource_remote_info_devin_organization import ResourceRemoteInfoDevinOrganization
+
+class TestResourceRemoteInfoDevinOrganization(unittest.TestCase):
+ """ResourceRemoteInfoDevinOrganization unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ResourceRemoteInfoDevinOrganization:
+ """Test ResourceRemoteInfoDevinOrganization
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ResourceRemoteInfoDevinOrganization`
+ """
+ model = ResourceRemoteInfoDevinOrganization()
+ if include_optional:
+ return ResourceRemoteInfoDevinOrganization(
+ org_id = 'devin-org-01'
+ )
+ else:
+ return ResourceRemoteInfoDevinOrganization(
+ org_id = 'devin-org-01',
+ )
+ """
+
+ def testResourceRemoteInfoDevinOrganization(self):
+ """Test ResourceRemoteInfoDevinOrganization"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_resource_remote_info_devin_role.py b/test/test_resource_remote_info_devin_role.py
new file mode 100644
index 0000000..e643a16
--- /dev/null
+++ b/test/test_resource_remote_info_devin_role.py
@@ -0,0 +1,53 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from opal_security.models.resource_remote_info_devin_role import ResourceRemoteInfoDevinRole
+
+class TestResourceRemoteInfoDevinRole(unittest.TestCase):
+ """ResourceRemoteInfoDevinRole unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ResourceRemoteInfoDevinRole:
+ """Test ResourceRemoteInfoDevinRole
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ResourceRemoteInfoDevinRole`
+ """
+ model = ResourceRemoteInfoDevinRole()
+ if include_optional:
+ return ResourceRemoteInfoDevinRole(
+ role_id = 'devin-role-01'
+ )
+ else:
+ return ResourceRemoteInfoDevinRole(
+ role_id = 'devin-role-01',
+ )
+ """
+
+ def testResourceRemoteInfoDevinRole(self):
+ """Test ResourceRemoteInfoDevinRole"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_resource_remote_info_ilevel_advanced_role.py b/test/test_resource_remote_info_ilevel_advanced_role.py
new file mode 100644
index 0000000..ff3fade
--- /dev/null
+++ b/test/test_resource_remote_info_ilevel_advanced_role.py
@@ -0,0 +1,53 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from opal_security.models.resource_remote_info_ilevel_advanced_role import ResourceRemoteInfoIlevelAdvancedRole
+
+class TestResourceRemoteInfoIlevelAdvancedRole(unittest.TestCase):
+ """ResourceRemoteInfoIlevelAdvancedRole unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ResourceRemoteInfoIlevelAdvancedRole:
+ """Test ResourceRemoteInfoIlevelAdvancedRole
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ResourceRemoteInfoIlevelAdvancedRole`
+ """
+ model = ResourceRemoteInfoIlevelAdvancedRole()
+ if include_optional:
+ return ResourceRemoteInfoIlevelAdvancedRole(
+ role_name = 'IT User'
+ )
+ else:
+ return ResourceRemoteInfoIlevelAdvancedRole(
+ role_name = 'IT User',
+ )
+ """
+
+ def testResourceRemoteInfoIlevelAdvancedRole(self):
+ """Test ResourceRemoteInfoIlevelAdvancedRole"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_resource_remote_info_snowflake_database.py b/test/test_resource_remote_info_snowflake_database.py
new file mode 100644
index 0000000..717c2da
--- /dev/null
+++ b/test/test_resource_remote_info_snowflake_database.py
@@ -0,0 +1,53 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from opal_security.models.resource_remote_info_snowflake_database import ResourceRemoteInfoSnowflakeDatabase
+
+class TestResourceRemoteInfoSnowflakeDatabase(unittest.TestCase):
+ """ResourceRemoteInfoSnowflakeDatabase unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ResourceRemoteInfoSnowflakeDatabase:
+ """Test ResourceRemoteInfoSnowflakeDatabase
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ResourceRemoteInfoSnowflakeDatabase`
+ """
+ model = ResourceRemoteInfoSnowflakeDatabase()
+ if include_optional:
+ return ResourceRemoteInfoSnowflakeDatabase(
+ database_name = 'mydatabase'
+ )
+ else:
+ return ResourceRemoteInfoSnowflakeDatabase(
+ database_name = 'mydatabase',
+ )
+ """
+
+ def testResourceRemoteInfoSnowflakeDatabase(self):
+ """Test ResourceRemoteInfoSnowflakeDatabase"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_resource_remote_info_snowflake_schema.py b/test/test_resource_remote_info_snowflake_schema.py
new file mode 100644
index 0000000..95ed496
--- /dev/null
+++ b/test/test_resource_remote_info_snowflake_schema.py
@@ -0,0 +1,55 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from opal_security.models.resource_remote_info_snowflake_schema import ResourceRemoteInfoSnowflakeSchema
+
+class TestResourceRemoteInfoSnowflakeSchema(unittest.TestCase):
+ """ResourceRemoteInfoSnowflakeSchema unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ResourceRemoteInfoSnowflakeSchema:
+ """Test ResourceRemoteInfoSnowflakeSchema
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ResourceRemoteInfoSnowflakeSchema`
+ """
+ model = ResourceRemoteInfoSnowflakeSchema()
+ if include_optional:
+ return ResourceRemoteInfoSnowflakeSchema(
+ database_name = 'mydatabase',
+ schema_name = 'mycatalogschema'
+ )
+ else:
+ return ResourceRemoteInfoSnowflakeSchema(
+ database_name = 'mydatabase',
+ schema_name = 'mycatalogschema',
+ )
+ """
+
+ def testResourceRemoteInfoSnowflakeSchema(self):
+ """Test ResourceRemoteInfoSnowflakeSchema"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_resource_remote_info_snowflake_table.py b/test/test_resource_remote_info_snowflake_table.py
new file mode 100644
index 0000000..54ba4f6
--- /dev/null
+++ b/test/test_resource_remote_info_snowflake_table.py
@@ -0,0 +1,57 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from opal_security.models.resource_remote_info_snowflake_table import ResourceRemoteInfoSnowflakeTable
+
+class TestResourceRemoteInfoSnowflakeTable(unittest.TestCase):
+ """ResourceRemoteInfoSnowflakeTable unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ResourceRemoteInfoSnowflakeTable:
+ """Test ResourceRemoteInfoSnowflakeTable
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ResourceRemoteInfoSnowflakeTable`
+ """
+ model = ResourceRemoteInfoSnowflakeTable()
+ if include_optional:
+ return ResourceRemoteInfoSnowflakeTable(
+ database_name = 'mydatabase',
+ schema_name = 'mycatalogschema',
+ table_name = 'myitemstable'
+ )
+ else:
+ return ResourceRemoteInfoSnowflakeTable(
+ database_name = 'mydatabase',
+ schema_name = 'mycatalogschema',
+ table_name = 'myitemstable',
+ )
+ """
+
+ def testResourceRemoteInfoSnowflakeTable(self):
+ """Test ResourceRemoteInfoSnowflakeTable"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_resource_remote_info_tailscale_ssh.py b/test/test_resource_remote_info_tailscale_ssh.py
new file mode 100644
index 0000000..dcd4b97
--- /dev/null
+++ b/test/test_resource_remote_info_tailscale_ssh.py
@@ -0,0 +1,53 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from opal_security.models.resource_remote_info_tailscale_ssh import ResourceRemoteInfoTailscaleSsh
+
+class TestResourceRemoteInfoTailscaleSsh(unittest.TestCase):
+ """ResourceRemoteInfoTailscaleSsh unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ResourceRemoteInfoTailscaleSsh:
+ """Test ResourceRemoteInfoTailscaleSsh
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ResourceRemoteInfoTailscaleSsh`
+ """
+ model = ResourceRemoteInfoTailscaleSsh()
+ if include_optional:
+ return ResourceRemoteInfoTailscaleSsh(
+ tag_name = 'admin'
+ )
+ else:
+ return ResourceRemoteInfoTailscaleSsh(
+ tag_name = 'admin',
+ )
+ """
+
+ def testResourceRemoteInfoTailscaleSsh(self):
+ """Test ResourceRemoteInfoTailscaleSsh"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/test/test_resource_remote_info_workday_role.py b/test/test_resource_remote_info_workday_role.py
new file mode 100644
index 0000000..cb96bb9
--- /dev/null
+++ b/test/test_resource_remote_info_workday_role.py
@@ -0,0 +1,53 @@
+# coding: utf-8
+
+"""
+ Opal API
+
+ The Opal API is a RESTful API that allows you to interact with the Opal Security platform programmatically.
+
+ The version of the OpenAPI document: 1.0
+ Contact: hello@opal.dev
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+
+import unittest
+
+from opal_security.models.resource_remote_info_workday_role import ResourceRemoteInfoWorkdayRole
+
+class TestResourceRemoteInfoWorkdayRole(unittest.TestCase):
+ """ResourceRemoteInfoWorkdayRole unit test stubs"""
+
+ def setUp(self):
+ pass
+
+ def tearDown(self):
+ pass
+
+ def make_instance(self, include_optional) -> ResourceRemoteInfoWorkdayRole:
+ """Test ResourceRemoteInfoWorkdayRole
+ include_optional is a boolean, when False only required
+ params are included, when True both required and
+ optional params are included """
+ # uncomment below to create an instance of `ResourceRemoteInfoWorkdayRole`
+ """
+ model = ResourceRemoteInfoWorkdayRole()
+ if include_optional:
+ return ResourceRemoteInfoWorkdayRole(
+ role_id = '123abc456def'
+ )
+ else:
+ return ResourceRemoteInfoWorkdayRole(
+ role_id = '123abc456def',
+ )
+ """
+
+ def testResourceRemoteInfoWorkdayRole(self):
+ """Test ResourceRemoteInfoWorkdayRole"""
+ # inst_req_only = self.make_instance(include_optional=False)
+ # inst_req_and_optional = self.make_instance(include_optional=True)
+
+if __name__ == '__main__':
+ unittest.main()