diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES
index 98ce7217..e1e66641 100644
--- a/.openapi-generator/FILES
+++ b/.openapi-generator/FILES
@@ -10,6 +10,7 @@ kinde_sdk/management/api/business_api.py
kinde_sdk/management/api/callbacks_api.py
kinde_sdk/management/api/connected_apps_api.py
kinde_sdk/management/api/connections_api.py
+kinde_sdk/management/api/directories_api.py
kinde_sdk/management/api/environment_variables_api.py
kinde_sdk/management/api/environments_api.py
kinde_sdk/management/api/feature_flags_api.py
@@ -75,6 +76,8 @@ kinde_sdk/management/docs/CreateConnectionRequestOptionsOneOf1.md
kinde_sdk/management/docs/CreateConnectionRequestOptionsOneOf2.md
kinde_sdk/management/docs/CreateConnectionResponse.md
kinde_sdk/management/docs/CreateConnectionResponseConnection.md
+kinde_sdk/management/docs/CreateDirectoryRequest.md
+kinde_sdk/management/docs/CreateDirectoryResponse.md
kinde_sdk/management/docs/CreateEnvironmentVariableRequest.md
kinde_sdk/management/docs/CreateEnvironmentVariableResponse.md
kinde_sdk/management/docs/CreateEnvironmentVariableResponseEnvironmentVariable.md
@@ -83,6 +86,9 @@ kinde_sdk/management/docs/CreateIdentityResponse.md
kinde_sdk/management/docs/CreateIdentityResponseIdentity.md
kinde_sdk/management/docs/CreateMeterUsageRecordRequest.md
kinde_sdk/management/docs/CreateMeterUsageRecordResponse.md
+kinde_sdk/management/docs/CreateOrganizationInviteRequest.md
+kinde_sdk/management/docs/CreateOrganizationInviteResponse.md
+kinde_sdk/management/docs/CreateOrganizationInviteResponseInvite.md
kinde_sdk/management/docs/CreateOrganizationRequest.md
kinde_sdk/management/docs/CreateOrganizationResponse.md
kinde_sdk/management/docs/CreateOrganizationResponseOrganization.md
@@ -107,9 +113,12 @@ kinde_sdk/management/docs/CreateWebHookRequest.md
kinde_sdk/management/docs/CreateWebhookResponse.md
kinde_sdk/management/docs/CreateWebhookResponseWebhook.md
kinde_sdk/management/docs/DeleteApiResponse.md
+kinde_sdk/management/docs/DeleteDirectoryResponse.md
kinde_sdk/management/docs/DeleteEnvironmentVariableResponse.md
kinde_sdk/management/docs/DeleteRoleScopeResponse.md
kinde_sdk/management/docs/DeleteWebhookResponse.md
+kinde_sdk/management/docs/DirectoriesApi.md
+kinde_sdk/management/docs/Directory.md
kinde_sdk/management/docs/EnvironmentVariable.md
kinde_sdk/management/docs/EnvironmentVariablesApi.md
kinde_sdk/management/docs/EnvironmentsApi.md
@@ -144,6 +153,8 @@ kinde_sdk/management/docs/GetBusinessResponse.md
kinde_sdk/management/docs/GetBusinessResponseBusiness.md
kinde_sdk/management/docs/GetCategoriesResponse.md
kinde_sdk/management/docs/GetConnectionsResponse.md
+kinde_sdk/management/docs/GetDirectoriesResponse.md
+kinde_sdk/management/docs/GetDirectoryResponse.md
kinde_sdk/management/docs/GetEnvironmentFeatureFlagsResponse.md
kinde_sdk/management/docs/GetEnvironmentResponse.md
kinde_sdk/management/docs/GetEnvironmentResponseEnvironment.md
@@ -159,22 +170,32 @@ kinde_sdk/management/docs/GetIndustriesResponse.md
kinde_sdk/management/docs/GetIndustriesResponseIndustriesInner.md
kinde_sdk/management/docs/GetOrganizationFeatureFlagsResponse.md
kinde_sdk/management/docs/GetOrganizationFeatureFlagsResponseFeatureFlagsValue.md
+kinde_sdk/management/docs/GetOrganizationInviteResponse.md
+kinde_sdk/management/docs/GetOrganizationInviteResponseRolesInner.md
+kinde_sdk/management/docs/GetOrganizationInvitesResponse.md
+kinde_sdk/management/docs/GetOrganizationPasskey200Response.md
kinde_sdk/management/docs/GetOrganizationResponse.md
kinde_sdk/management/docs/GetOrganizationResponseBilling.md
kinde_sdk/management/docs/GetOrganizationResponseBillingAgreementsInner.md
+kinde_sdk/management/docs/GetOrganizationRoleUsersResponse.md
+kinde_sdk/management/docs/GetOrganizationRoleUsersResponseUsersInner.md
kinde_sdk/management/docs/GetOrganizationUsersResponse.md
kinde_sdk/management/docs/GetOrganizationsResponse.md
kinde_sdk/management/docs/GetOrganizationsUserPermissionsResponse.md
kinde_sdk/management/docs/GetOrganizationsUserRolesResponse.md
+kinde_sdk/management/docs/GetPasskey200Response.md
kinde_sdk/management/docs/GetPermissionsResponse.md
kinde_sdk/management/docs/GetPropertiesResponse.md
kinde_sdk/management/docs/GetPropertyValuesResponse.md
kinde_sdk/management/docs/GetRedirectCallbackUrlsResponse.md
kinde_sdk/management/docs/GetRoleResponse.md
kinde_sdk/management/docs/GetRoleResponseRole.md
+kinde_sdk/management/docs/GetRoleUsersResponse.md
+kinde_sdk/management/docs/GetRoleUsersResponseUsersInner.md
kinde_sdk/management/docs/GetRolesResponse.md
kinde_sdk/management/docs/GetSubscriberResponse.md
kinde_sdk/management/docs/GetSubscribersResponse.md
+kinde_sdk/management/docs/GetSystemPermissionsResponse.md
kinde_sdk/management/docs/GetTimezonesResponse.md
kinde_sdk/management/docs/GetTimezonesResponseTimezonesInner.md
kinde_sdk/management/docs/GetUserMfaResponse.md
@@ -190,6 +211,7 @@ kinde_sdk/management/docs/MFAApi.md
kinde_sdk/management/docs/ModelProperty.md
kinde_sdk/management/docs/NotFoundResponse.md
kinde_sdk/management/docs/NotFoundResponseErrors.md
+kinde_sdk/management/docs/OrganizationInvite.md
kinde_sdk/management/docs/OrganizationItemSchema.md
kinde_sdk/management/docs/OrganizationUser.md
kinde_sdk/management/docs/OrganizationUserPermission.md
@@ -219,6 +241,7 @@ kinde_sdk/management/docs/ReplaceRedirectCallbackURLsRequest.md
kinde_sdk/management/docs/Role.md
kinde_sdk/management/docs/RolePermissionsResponse.md
kinde_sdk/management/docs/RoleScopesResponse.md
+kinde_sdk/management/docs/RoleSystemPermissionsResponse.md
kinde_sdk/management/docs/Roles.md
kinde_sdk/management/docs/RolesApi.md
kinde_sdk/management/docs/RotateApiKeyResponse.md
@@ -233,6 +256,7 @@ kinde_sdk/management/docs/Subscriber.md
kinde_sdk/management/docs/SubscribersApi.md
kinde_sdk/management/docs/SubscribersSubscriber.md
kinde_sdk/management/docs/SuccessResponse.md
+kinde_sdk/management/docs/SystemPermissions.md
kinde_sdk/management/docs/TimezonesApi.md
kinde_sdk/management/docs/UpdateAPIApplicationsRequest.md
kinde_sdk/management/docs/UpdateAPIApplicationsRequestApplicationsInner.md
@@ -246,20 +270,30 @@ kinde_sdk/management/docs/UpdateCategoryRequest.md
kinde_sdk/management/docs/UpdateConnectionRequest.md
kinde_sdk/management/docs/UpdateConnectionRequestOptions.md
kinde_sdk/management/docs/UpdateConnectionRequestOptionsOneOf.md
+kinde_sdk/management/docs/UpdateConnectionRequestOptionsOneOf1.md
+kinde_sdk/management/docs/UpdateDirectoryRequest.md
+kinde_sdk/management/docs/UpdateDirectoryResponse.md
kinde_sdk/management/docs/UpdateEnvironementFeatureFlagOverrideRequest.md
kinde_sdk/management/docs/UpdateEnvironmentVariableRequest.md
kinde_sdk/management/docs/UpdateEnvironmentVariableResponse.md
kinde_sdk/management/docs/UpdateIdentityRequest.md
+kinde_sdk/management/docs/UpdateOrganizationPasskey200Response.md
+kinde_sdk/management/docs/UpdateOrganizationPasskeyRequest.md
kinde_sdk/management/docs/UpdateOrganizationPropertiesRequest.md
kinde_sdk/management/docs/UpdateOrganizationRequest.md
kinde_sdk/management/docs/UpdateOrganizationSessionsRequest.md
kinde_sdk/management/docs/UpdateOrganizationUsersRequest.md
kinde_sdk/management/docs/UpdateOrganizationUsersRequestUsersInner.md
kinde_sdk/management/docs/UpdateOrganizationUsersResponse.md
+kinde_sdk/management/docs/UpdatePasskey200Response.md
+kinde_sdk/management/docs/UpdatePasskeyRequest.md
kinde_sdk/management/docs/UpdatePropertyRequest.md
kinde_sdk/management/docs/UpdateRolePermissionsRequest.md
kinde_sdk/management/docs/UpdateRolePermissionsRequestPermissionsInner.md
kinde_sdk/management/docs/UpdateRolePermissionsResponse.md
+kinde_sdk/management/docs/UpdateRoleSystemPermissionsRequest.md
+kinde_sdk/management/docs/UpdateRoleSystemPermissionsRequestSystemPermissionsInner.md
+kinde_sdk/management/docs/UpdateRoleSystemPermissionsResponse.md
kinde_sdk/management/docs/UpdateRolesRequest.md
kinde_sdk/management/docs/UpdateUserRequest.md
kinde_sdk/management/docs/UpdateUserResponse.md
@@ -275,6 +309,7 @@ kinde_sdk/management/docs/UsersApi.md
kinde_sdk/management/docs/UsersResponse.md
kinde_sdk/management/docs/UsersResponseUsersInner.md
kinde_sdk/management/docs/UsersResponseUsersInnerBilling.md
+kinde_sdk/management/docs/UsersResponseUsersInnerIdentitiesInner.md
kinde_sdk/management/docs/UsersResponseUsersInnerLastOrganizationSignInsInner.md
kinde_sdk/management/docs/VerifyApiKeyRequest.md
kinde_sdk/management/docs/VerifyApiKeyResponse.md
@@ -318,6 +353,8 @@ kinde_sdk/management/models/create_connection_request_options_one_of1.py
kinde_sdk/management/models/create_connection_request_options_one_of2.py
kinde_sdk/management/models/create_connection_response.py
kinde_sdk/management/models/create_connection_response_connection.py
+kinde_sdk/management/models/create_directory_request.py
+kinde_sdk/management/models/create_directory_response.py
kinde_sdk/management/models/create_environment_variable_request.py
kinde_sdk/management/models/create_environment_variable_response.py
kinde_sdk/management/models/create_environment_variable_response_environment_variable.py
@@ -326,6 +363,9 @@ kinde_sdk/management/models/create_identity_response.py
kinde_sdk/management/models/create_identity_response_identity.py
kinde_sdk/management/models/create_meter_usage_record_request.py
kinde_sdk/management/models/create_meter_usage_record_response.py
+kinde_sdk/management/models/create_organization_invite_request.py
+kinde_sdk/management/models/create_organization_invite_response.py
+kinde_sdk/management/models/create_organization_invite_response_invite.py
kinde_sdk/management/models/create_organization_request.py
kinde_sdk/management/models/create_organization_response.py
kinde_sdk/management/models/create_organization_response_organization.py
@@ -350,9 +390,11 @@ kinde_sdk/management/models/create_web_hook_request.py
kinde_sdk/management/models/create_webhook_response.py
kinde_sdk/management/models/create_webhook_response_webhook.py
kinde_sdk/management/models/delete_api_response.py
+kinde_sdk/management/models/delete_directory_response.py
kinde_sdk/management/models/delete_environment_variable_response.py
kinde_sdk/management/models/delete_role_scope_response.py
kinde_sdk/management/models/delete_webhook_response.py
+kinde_sdk/management/models/directory.py
kinde_sdk/management/models/environment_variable.py
kinde_sdk/management/models/error.py
kinde_sdk/management/models/error_response.py
@@ -384,6 +426,8 @@ kinde_sdk/management/models/get_business_response.py
kinde_sdk/management/models/get_business_response_business.py
kinde_sdk/management/models/get_categories_response.py
kinde_sdk/management/models/get_connections_response.py
+kinde_sdk/management/models/get_directories_response.py
+kinde_sdk/management/models/get_directory_response.py
kinde_sdk/management/models/get_environment_feature_flags_response.py
kinde_sdk/management/models/get_environment_response.py
kinde_sdk/management/models/get_environment_response_environment.py
@@ -399,22 +443,32 @@ kinde_sdk/management/models/get_industries_response.py
kinde_sdk/management/models/get_industries_response_industries_inner.py
kinde_sdk/management/models/get_organization_feature_flags_response.py
kinde_sdk/management/models/get_organization_feature_flags_response_feature_flags_value.py
+kinde_sdk/management/models/get_organization_invite_response.py
+kinde_sdk/management/models/get_organization_invite_response_roles_inner.py
+kinde_sdk/management/models/get_organization_invites_response.py
+kinde_sdk/management/models/get_organization_passkey200_response.py
kinde_sdk/management/models/get_organization_response.py
kinde_sdk/management/models/get_organization_response_billing.py
kinde_sdk/management/models/get_organization_response_billing_agreements_inner.py
+kinde_sdk/management/models/get_organization_role_users_response.py
+kinde_sdk/management/models/get_organization_role_users_response_users_inner.py
kinde_sdk/management/models/get_organization_users_response.py
kinde_sdk/management/models/get_organizations_response.py
kinde_sdk/management/models/get_organizations_user_permissions_response.py
kinde_sdk/management/models/get_organizations_user_roles_response.py
+kinde_sdk/management/models/get_passkey200_response.py
kinde_sdk/management/models/get_permissions_response.py
kinde_sdk/management/models/get_properties_response.py
kinde_sdk/management/models/get_property_values_response.py
kinde_sdk/management/models/get_redirect_callback_urls_response.py
kinde_sdk/management/models/get_role_response.py
kinde_sdk/management/models/get_role_response_role.py
+kinde_sdk/management/models/get_role_users_response.py
+kinde_sdk/management/models/get_role_users_response_users_inner.py
kinde_sdk/management/models/get_roles_response.py
kinde_sdk/management/models/get_subscriber_response.py
kinde_sdk/management/models/get_subscribers_response.py
+kinde_sdk/management/models/get_system_permissions_response.py
kinde_sdk/management/models/get_timezones_response.py
kinde_sdk/management/models/get_timezones_response_timezones_inner.py
kinde_sdk/management/models/get_user_mfa_response.py
@@ -427,6 +481,7 @@ kinde_sdk/management/models/logout_redirect_urls.py
kinde_sdk/management/models/model_property.py
kinde_sdk/management/models/not_found_response.py
kinde_sdk/management/models/not_found_response_errors.py
+kinde_sdk/management/models/organization_invite.py
kinde_sdk/management/models/organization_item_schema.py
kinde_sdk/management/models/organization_user.py
kinde_sdk/management/models/organization_user_permission.py
@@ -452,6 +507,7 @@ kinde_sdk/management/models/replace_redirect_callback_urls_request.py
kinde_sdk/management/models/role.py
kinde_sdk/management/models/role_permissions_response.py
kinde_sdk/management/models/role_scopes_response.py
+kinde_sdk/management/models/role_system_permissions_response.py
kinde_sdk/management/models/roles.py
kinde_sdk/management/models/rotate_api_key_response.py
kinde_sdk/management/models/rotate_api_key_response_api_key.py
@@ -463,6 +519,7 @@ kinde_sdk/management/models/set_user_password_request.py
kinde_sdk/management/models/subscriber.py
kinde_sdk/management/models/subscribers_subscriber.py
kinde_sdk/management/models/success_response.py
+kinde_sdk/management/models/system_permissions.py
kinde_sdk/management/models/update_api_applications_request.py
kinde_sdk/management/models/update_api_applications_request_applications_inner.py
kinde_sdk/management/models/update_api_scope_request.py
@@ -475,20 +532,30 @@ kinde_sdk/management/models/update_category_request.py
kinde_sdk/management/models/update_connection_request.py
kinde_sdk/management/models/update_connection_request_options.py
kinde_sdk/management/models/update_connection_request_options_one_of.py
+kinde_sdk/management/models/update_connection_request_options_one_of1.py
+kinde_sdk/management/models/update_directory_request.py
+kinde_sdk/management/models/update_directory_response.py
kinde_sdk/management/models/update_environement_feature_flag_override_request.py
kinde_sdk/management/models/update_environment_variable_request.py
kinde_sdk/management/models/update_environment_variable_response.py
kinde_sdk/management/models/update_identity_request.py
+kinde_sdk/management/models/update_organization_passkey200_response.py
+kinde_sdk/management/models/update_organization_passkey_request.py
kinde_sdk/management/models/update_organization_properties_request.py
kinde_sdk/management/models/update_organization_request.py
kinde_sdk/management/models/update_organization_sessions_request.py
kinde_sdk/management/models/update_organization_users_request.py
kinde_sdk/management/models/update_organization_users_request_users_inner.py
kinde_sdk/management/models/update_organization_users_response.py
+kinde_sdk/management/models/update_passkey200_response.py
+kinde_sdk/management/models/update_passkey_request.py
kinde_sdk/management/models/update_property_request.py
kinde_sdk/management/models/update_role_permissions_request.py
kinde_sdk/management/models/update_role_permissions_request_permissions_inner.py
kinde_sdk/management/models/update_role_permissions_response.py
+kinde_sdk/management/models/update_role_system_permissions_request.py
+kinde_sdk/management/models/update_role_system_permissions_request_system_permissions_inner.py
+kinde_sdk/management/models/update_role_system_permissions_response.py
kinde_sdk/management/models/update_roles_request.py
kinde_sdk/management/models/update_user_request.py
kinde_sdk/management/models/update_user_response.py
@@ -503,6 +570,7 @@ kinde_sdk/management/models/user_identity_result.py
kinde_sdk/management/models/users_response.py
kinde_sdk/management/models/users_response_users_inner.py
kinde_sdk/management/models/users_response_users_inner_billing.py
+kinde_sdk/management/models/users_response_users_inner_identities_inner.py
kinde_sdk/management/models/users_response_users_inner_last_organization_sign_ins_inner.py
kinde_sdk/management/models/verify_api_key_request.py
kinde_sdk/management/models/verify_api_key_response.py
@@ -555,6 +623,8 @@ kinde_sdk/management/test/test_create_connection_request_options_one_of1.py
kinde_sdk/management/test/test_create_connection_request_options_one_of2.py
kinde_sdk/management/test/test_create_connection_response.py
kinde_sdk/management/test/test_create_connection_response_connection.py
+kinde_sdk/management/test/test_create_directory_request.py
+kinde_sdk/management/test/test_create_directory_response.py
kinde_sdk/management/test/test_create_environment_variable_request.py
kinde_sdk/management/test/test_create_environment_variable_response.py
kinde_sdk/management/test/test_create_environment_variable_response_environment_variable.py
@@ -563,6 +633,9 @@ kinde_sdk/management/test/test_create_identity_response.py
kinde_sdk/management/test/test_create_identity_response_identity.py
kinde_sdk/management/test/test_create_meter_usage_record_request.py
kinde_sdk/management/test/test_create_meter_usage_record_response.py
+kinde_sdk/management/test/test_create_organization_invite_request.py
+kinde_sdk/management/test/test_create_organization_invite_response.py
+kinde_sdk/management/test/test_create_organization_invite_response_invite.py
kinde_sdk/management/test/test_create_organization_request.py
kinde_sdk/management/test/test_create_organization_response.py
kinde_sdk/management/test/test_create_organization_response_organization.py
@@ -587,9 +660,12 @@ kinde_sdk/management/test/test_create_web_hook_request.py
kinde_sdk/management/test/test_create_webhook_response.py
kinde_sdk/management/test/test_create_webhook_response_webhook.py
kinde_sdk/management/test/test_delete_api_response.py
+kinde_sdk/management/test/test_delete_directory_response.py
kinde_sdk/management/test/test_delete_environment_variable_response.py
kinde_sdk/management/test/test_delete_role_scope_response.py
kinde_sdk/management/test/test_delete_webhook_response.py
+kinde_sdk/management/test/test_directories_api.py
+kinde_sdk/management/test/test_directory.py
kinde_sdk/management/test/test_environment_variable.py
kinde_sdk/management/test/test_environment_variables_api.py
kinde_sdk/management/test/test_environments_api.py
@@ -624,6 +700,8 @@ kinde_sdk/management/test/test_get_business_response.py
kinde_sdk/management/test/test_get_business_response_business.py
kinde_sdk/management/test/test_get_categories_response.py
kinde_sdk/management/test/test_get_connections_response.py
+kinde_sdk/management/test/test_get_directories_response.py
+kinde_sdk/management/test/test_get_directory_response.py
kinde_sdk/management/test/test_get_environment_feature_flags_response.py
kinde_sdk/management/test/test_get_environment_response.py
kinde_sdk/management/test/test_get_environment_response_environment.py
@@ -639,22 +717,32 @@ kinde_sdk/management/test/test_get_industries_response.py
kinde_sdk/management/test/test_get_industries_response_industries_inner.py
kinde_sdk/management/test/test_get_organization_feature_flags_response.py
kinde_sdk/management/test/test_get_organization_feature_flags_response_feature_flags_value.py
+kinde_sdk/management/test/test_get_organization_invite_response.py
+kinde_sdk/management/test/test_get_organization_invite_response_roles_inner.py
+kinde_sdk/management/test/test_get_organization_invites_response.py
+kinde_sdk/management/test/test_get_organization_passkey200_response.py
kinde_sdk/management/test/test_get_organization_response.py
kinde_sdk/management/test/test_get_organization_response_billing.py
kinde_sdk/management/test/test_get_organization_response_billing_agreements_inner.py
+kinde_sdk/management/test/test_get_organization_role_users_response.py
+kinde_sdk/management/test/test_get_organization_role_users_response_users_inner.py
kinde_sdk/management/test/test_get_organization_users_response.py
kinde_sdk/management/test/test_get_organizations_response.py
kinde_sdk/management/test/test_get_organizations_user_permissions_response.py
kinde_sdk/management/test/test_get_organizations_user_roles_response.py
+kinde_sdk/management/test/test_get_passkey200_response.py
kinde_sdk/management/test/test_get_permissions_response.py
kinde_sdk/management/test/test_get_properties_response.py
kinde_sdk/management/test/test_get_property_values_response.py
kinde_sdk/management/test/test_get_redirect_callback_urls_response.py
kinde_sdk/management/test/test_get_role_response.py
kinde_sdk/management/test/test_get_role_response_role.py
+kinde_sdk/management/test/test_get_role_users_response.py
+kinde_sdk/management/test/test_get_role_users_response_users_inner.py
kinde_sdk/management/test/test_get_roles_response.py
kinde_sdk/management/test/test_get_subscriber_response.py
kinde_sdk/management/test/test_get_subscribers_response.py
+kinde_sdk/management/test/test_get_system_permissions_response.py
kinde_sdk/management/test/test_get_timezones_response.py
kinde_sdk/management/test/test_get_timezones_response_timezones_inner.py
kinde_sdk/management/test/test_get_user_mfa_response.py
@@ -670,6 +758,7 @@ kinde_sdk/management/test/test_mfa_api.py
kinde_sdk/management/test/test_model_property.py
kinde_sdk/management/test/test_not_found_response.py
kinde_sdk/management/test/test_not_found_response_errors.py
+kinde_sdk/management/test/test_organization_invite.py
kinde_sdk/management/test/test_organization_item_schema.py
kinde_sdk/management/test/test_organization_user.py
kinde_sdk/management/test/test_organization_user_permission.py
@@ -699,6 +788,7 @@ kinde_sdk/management/test/test_replace_redirect_callback_urls_request.py
kinde_sdk/management/test/test_role.py
kinde_sdk/management/test/test_role_permissions_response.py
kinde_sdk/management/test/test_role_scopes_response.py
+kinde_sdk/management/test/test_role_system_permissions_response.py
kinde_sdk/management/test/test_roles.py
kinde_sdk/management/test/test_roles_api.py
kinde_sdk/management/test/test_rotate_api_key_response.py
@@ -713,6 +803,7 @@ kinde_sdk/management/test/test_subscriber.py
kinde_sdk/management/test/test_subscribers_api.py
kinde_sdk/management/test/test_subscribers_subscriber.py
kinde_sdk/management/test/test_success_response.py
+kinde_sdk/management/test/test_system_permissions.py
kinde_sdk/management/test/test_timezones_api.py
kinde_sdk/management/test/test_update_api_applications_request.py
kinde_sdk/management/test/test_update_api_applications_request_applications_inner.py
@@ -726,20 +817,30 @@ kinde_sdk/management/test/test_update_category_request.py
kinde_sdk/management/test/test_update_connection_request.py
kinde_sdk/management/test/test_update_connection_request_options.py
kinde_sdk/management/test/test_update_connection_request_options_one_of.py
+kinde_sdk/management/test/test_update_connection_request_options_one_of1.py
+kinde_sdk/management/test/test_update_directory_request.py
+kinde_sdk/management/test/test_update_directory_response.py
kinde_sdk/management/test/test_update_environement_feature_flag_override_request.py
kinde_sdk/management/test/test_update_environment_variable_request.py
kinde_sdk/management/test/test_update_environment_variable_response.py
kinde_sdk/management/test/test_update_identity_request.py
+kinde_sdk/management/test/test_update_organization_passkey200_response.py
+kinde_sdk/management/test/test_update_organization_passkey_request.py
kinde_sdk/management/test/test_update_organization_properties_request.py
kinde_sdk/management/test/test_update_organization_request.py
kinde_sdk/management/test/test_update_organization_sessions_request.py
kinde_sdk/management/test/test_update_organization_users_request.py
kinde_sdk/management/test/test_update_organization_users_request_users_inner.py
kinde_sdk/management/test/test_update_organization_users_response.py
+kinde_sdk/management/test/test_update_passkey200_response.py
+kinde_sdk/management/test/test_update_passkey_request.py
kinde_sdk/management/test/test_update_property_request.py
kinde_sdk/management/test/test_update_role_permissions_request.py
kinde_sdk/management/test/test_update_role_permissions_request_permissions_inner.py
kinde_sdk/management/test/test_update_role_permissions_response.py
+kinde_sdk/management/test/test_update_role_system_permissions_request.py
+kinde_sdk/management/test/test_update_role_system_permissions_request_system_permissions_inner.py
+kinde_sdk/management/test/test_update_role_system_permissions_response.py
kinde_sdk/management/test/test_update_roles_request.py
kinde_sdk/management/test/test_update_user_request.py
kinde_sdk/management/test/test_update_user_response.py
@@ -755,6 +856,7 @@ kinde_sdk/management/test/test_users_api.py
kinde_sdk/management/test/test_users_response.py
kinde_sdk/management/test/test_users_response_users_inner.py
kinde_sdk/management/test/test_users_response_users_inner_billing.py
+kinde_sdk/management/test/test_users_response_users_inner_identities_inner.py
kinde_sdk/management/test/test_users_response_users_inner_last_organization_sign_ins_inner.py
kinde_sdk/management/test/test_verify_api_key_request.py
kinde_sdk/management/test/test_verify_api_key_response.py
diff --git a/kinde_sdk/management/__init__.py b/kinde_sdk/management/__init__.py
index 76e6264e..5388b1cb 100644
--- a/kinde_sdk/management/__init__.py
+++ b/kinde_sdk/management/__init__.py
@@ -16,7 +16,6 @@
from kinde_sdk._version import __version__ # single source of truth; see kinde_sdk/_version.py
-
# Define package exports
__all__ = [
"APIKeysApi",
@@ -29,6 +28,7 @@
"CallbacksApi",
"ConnectedAppsApi",
"ConnectionsApi",
+ "DirectoriesApi",
"EnvironmentVariablesApi",
"EnvironmentsApi",
"FeatureFlagsApi",
@@ -90,6 +90,8 @@
"CreateConnectionRequestOptionsOneOf2",
"CreateConnectionResponse",
"CreateConnectionResponseConnection",
+ "CreateDirectoryRequest",
+ "CreateDirectoryResponse",
"CreateEnvironmentVariableRequest",
"CreateEnvironmentVariableResponse",
"CreateEnvironmentVariableResponseEnvironmentVariable",
@@ -98,6 +100,9 @@
"CreateIdentityResponseIdentity",
"CreateMeterUsageRecordRequest",
"CreateMeterUsageRecordResponse",
+ "CreateOrganizationInviteRequest",
+ "CreateOrganizationInviteResponse",
+ "CreateOrganizationInviteResponseInvite",
"CreateOrganizationRequest",
"CreateOrganizationResponse",
"CreateOrganizationResponseOrganization",
@@ -122,9 +127,11 @@
"CreateWebhookResponse",
"CreateWebhookResponseWebhook",
"DeleteApiResponse",
+ "DeleteDirectoryResponse",
"DeleteEnvironmentVariableResponse",
"DeleteRoleScopeResponse",
"DeleteWebhookResponse",
+ "Directory",
"EnvironmentVariable",
"Error",
"ErrorResponse",
@@ -156,6 +163,8 @@
"GetBusinessResponseBusiness",
"GetCategoriesResponse",
"GetConnectionsResponse",
+ "GetDirectoriesResponse",
+ "GetDirectoryResponse",
"GetEnvironmentFeatureFlagsResponse",
"GetEnvironmentResponse",
"GetEnvironmentResponseEnvironment",
@@ -171,22 +180,32 @@
"GetIndustriesResponseIndustriesInner",
"GetOrganizationFeatureFlagsResponse",
"GetOrganizationFeatureFlagsResponseFeatureFlagsValue",
+ "GetOrganizationInviteResponse",
+ "GetOrganizationInviteResponseRolesInner",
+ "GetOrganizationInvitesResponse",
+ "GetOrganizationPasskey200Response",
"GetOrganizationResponse",
"GetOrganizationResponseBilling",
"GetOrganizationResponseBillingAgreementsInner",
+ "GetOrganizationRoleUsersResponse",
+ "GetOrganizationRoleUsersResponseUsersInner",
"GetOrganizationUsersResponse",
"GetOrganizationsResponse",
"GetOrganizationsUserPermissionsResponse",
"GetOrganizationsUserRolesResponse",
+ "GetPasskey200Response",
"GetPermissionsResponse",
"GetPropertiesResponse",
"GetPropertyValuesResponse",
"GetRedirectCallbackUrlsResponse",
"GetRoleResponse",
"GetRoleResponseRole",
+ "GetRoleUsersResponse",
+ "GetRoleUsersResponseUsersInner",
"GetRolesResponse",
"GetSubscriberResponse",
"GetSubscribersResponse",
+ "GetSystemPermissionsResponse",
"GetTimezonesResponse",
"GetTimezonesResponseTimezonesInner",
"GetUserMfaResponse",
@@ -199,6 +218,7 @@
"ModelProperty",
"NotFoundResponse",
"NotFoundResponseErrors",
+ "OrganizationInvite",
"OrganizationItemSchema",
"OrganizationUser",
"OrganizationUserPermission",
@@ -224,6 +244,7 @@
"Role",
"RolePermissionsResponse",
"RoleScopesResponse",
+ "RoleSystemPermissionsResponse",
"Roles",
"RotateApiKeyResponse",
"RotateApiKeyResponseApiKey",
@@ -235,6 +256,7 @@
"Subscriber",
"SubscribersSubscriber",
"SuccessResponse",
+ "SystemPermissions",
"UpdateAPIApplicationsRequest",
"UpdateAPIApplicationsRequestApplicationsInner",
"UpdateAPIScopeRequest",
@@ -247,20 +269,30 @@
"UpdateConnectionRequest",
"UpdateConnectionRequestOptions",
"UpdateConnectionRequestOptionsOneOf",
+ "UpdateConnectionRequestOptionsOneOf1",
+ "UpdateDirectoryRequest",
+ "UpdateDirectoryResponse",
"UpdateEnvironementFeatureFlagOverrideRequest",
"UpdateEnvironmentVariableRequest",
"UpdateEnvironmentVariableResponse",
"UpdateIdentityRequest",
+ "UpdateOrganizationPasskey200Response",
+ "UpdateOrganizationPasskeyRequest",
"UpdateOrganizationPropertiesRequest",
"UpdateOrganizationRequest",
"UpdateOrganizationSessionsRequest",
"UpdateOrganizationUsersRequest",
"UpdateOrganizationUsersRequestUsersInner",
"UpdateOrganizationUsersResponse",
+ "UpdatePasskey200Response",
+ "UpdatePasskeyRequest",
"UpdatePropertyRequest",
"UpdateRolePermissionsRequest",
"UpdateRolePermissionsRequestPermissionsInner",
"UpdateRolePermissionsResponse",
+ "UpdateRoleSystemPermissionsRequest",
+ "UpdateRoleSystemPermissionsRequestSystemPermissionsInner",
+ "UpdateRoleSystemPermissionsResponse",
"UpdateRolesRequest",
"UpdateUserRequest",
"UpdateUserResponse",
@@ -275,6 +307,7 @@
"UsersResponse",
"UsersResponseUsersInner",
"UsersResponseUsersInnerBilling",
+ "UsersResponseUsersInnerIdentitiesInner",
"UsersResponseUsersInnerLastOrganizationSignInsInner",
"VerifyApiKeyRequest",
"VerifyApiKeyResponse",
@@ -292,6 +325,7 @@
from kinde_sdk.management.api.callbacks_api import CallbacksApi as CallbacksApi
from kinde_sdk.management.api.connected_apps_api import ConnectedAppsApi as ConnectedAppsApi
from kinde_sdk.management.api.connections_api import ConnectionsApi as ConnectionsApi
+from kinde_sdk.management.api.directories_api import DirectoriesApi as DirectoriesApi
from kinde_sdk.management.api.environment_variables_api import EnvironmentVariablesApi as EnvironmentVariablesApi
from kinde_sdk.management.api.environments_api import EnvironmentsApi as EnvironmentsApi
from kinde_sdk.management.api.feature_flags_api import FeatureFlagsApi as FeatureFlagsApi
@@ -357,6 +391,8 @@
from kinde_sdk.management.models.create_connection_request_options_one_of2 import CreateConnectionRequestOptionsOneOf2 as CreateConnectionRequestOptionsOneOf2
from kinde_sdk.management.models.create_connection_response import CreateConnectionResponse as CreateConnectionResponse
from kinde_sdk.management.models.create_connection_response_connection import CreateConnectionResponseConnection as CreateConnectionResponseConnection
+from kinde_sdk.management.models.create_directory_request import CreateDirectoryRequest as CreateDirectoryRequest
+from kinde_sdk.management.models.create_directory_response import CreateDirectoryResponse as CreateDirectoryResponse
from kinde_sdk.management.models.create_environment_variable_request import CreateEnvironmentVariableRequest as CreateEnvironmentVariableRequest
from kinde_sdk.management.models.create_environment_variable_response import CreateEnvironmentVariableResponse as CreateEnvironmentVariableResponse
from kinde_sdk.management.models.create_environment_variable_response_environment_variable import CreateEnvironmentVariableResponseEnvironmentVariable as CreateEnvironmentVariableResponseEnvironmentVariable
@@ -365,6 +401,9 @@
from kinde_sdk.management.models.create_identity_response_identity import CreateIdentityResponseIdentity as CreateIdentityResponseIdentity
from kinde_sdk.management.models.create_meter_usage_record_request import CreateMeterUsageRecordRequest as CreateMeterUsageRecordRequest
from kinde_sdk.management.models.create_meter_usage_record_response import CreateMeterUsageRecordResponse as CreateMeterUsageRecordResponse
+from kinde_sdk.management.models.create_organization_invite_request import CreateOrganizationInviteRequest as CreateOrganizationInviteRequest
+from kinde_sdk.management.models.create_organization_invite_response import CreateOrganizationInviteResponse as CreateOrganizationInviteResponse
+from kinde_sdk.management.models.create_organization_invite_response_invite import CreateOrganizationInviteResponseInvite as CreateOrganizationInviteResponseInvite
from kinde_sdk.management.models.create_organization_request import CreateOrganizationRequest as CreateOrganizationRequest
from kinde_sdk.management.models.create_organization_response import CreateOrganizationResponse as CreateOrganizationResponse
from kinde_sdk.management.models.create_organization_response_organization import CreateOrganizationResponseOrganization as CreateOrganizationResponseOrganization
@@ -389,9 +428,11 @@
from kinde_sdk.management.models.create_webhook_response import CreateWebhookResponse as CreateWebhookResponse
from kinde_sdk.management.models.create_webhook_response_webhook import CreateWebhookResponseWebhook as CreateWebhookResponseWebhook
from kinde_sdk.management.models.delete_api_response import DeleteApiResponse as DeleteApiResponse
+from kinde_sdk.management.models.delete_directory_response import DeleteDirectoryResponse as DeleteDirectoryResponse
from kinde_sdk.management.models.delete_environment_variable_response import DeleteEnvironmentVariableResponse as DeleteEnvironmentVariableResponse
from kinde_sdk.management.models.delete_role_scope_response import DeleteRoleScopeResponse as DeleteRoleScopeResponse
from kinde_sdk.management.models.delete_webhook_response import DeleteWebhookResponse as DeleteWebhookResponse
+from kinde_sdk.management.models.directory import Directory as Directory
from kinde_sdk.management.models.environment_variable import EnvironmentVariable as EnvironmentVariable
from kinde_sdk.management.models.error import Error as Error
from kinde_sdk.management.models.error_response import ErrorResponse as ErrorResponse
@@ -423,6 +464,8 @@
from kinde_sdk.management.models.get_business_response_business import GetBusinessResponseBusiness as GetBusinessResponseBusiness
from kinde_sdk.management.models.get_categories_response import GetCategoriesResponse as GetCategoriesResponse
from kinde_sdk.management.models.get_connections_response import GetConnectionsResponse as GetConnectionsResponse
+from kinde_sdk.management.models.get_directories_response import GetDirectoriesResponse as GetDirectoriesResponse
+from kinde_sdk.management.models.get_directory_response import GetDirectoryResponse as GetDirectoryResponse
from kinde_sdk.management.models.get_environment_feature_flags_response import GetEnvironmentFeatureFlagsResponse as GetEnvironmentFeatureFlagsResponse
from kinde_sdk.management.models.get_environment_response import GetEnvironmentResponse as GetEnvironmentResponse
from kinde_sdk.management.models.get_environment_response_environment import GetEnvironmentResponseEnvironment as GetEnvironmentResponseEnvironment
@@ -438,22 +481,32 @@
from kinde_sdk.management.models.get_industries_response_industries_inner import GetIndustriesResponseIndustriesInner as GetIndustriesResponseIndustriesInner
from kinde_sdk.management.models.get_organization_feature_flags_response import GetOrganizationFeatureFlagsResponse as GetOrganizationFeatureFlagsResponse
from kinde_sdk.management.models.get_organization_feature_flags_response_feature_flags_value import GetOrganizationFeatureFlagsResponseFeatureFlagsValue as GetOrganizationFeatureFlagsResponseFeatureFlagsValue
+from kinde_sdk.management.models.get_organization_invite_response import GetOrganizationInviteResponse as GetOrganizationInviteResponse
+from kinde_sdk.management.models.get_organization_invite_response_roles_inner import GetOrganizationInviteResponseRolesInner as GetOrganizationInviteResponseRolesInner
+from kinde_sdk.management.models.get_organization_invites_response import GetOrganizationInvitesResponse as GetOrganizationInvitesResponse
+from kinde_sdk.management.models.get_organization_passkey200_response import GetOrganizationPasskey200Response as GetOrganizationPasskey200Response
from kinde_sdk.management.models.get_organization_response import GetOrganizationResponse as GetOrganizationResponse
from kinde_sdk.management.models.get_organization_response_billing import GetOrganizationResponseBilling as GetOrganizationResponseBilling
from kinde_sdk.management.models.get_organization_response_billing_agreements_inner import GetOrganizationResponseBillingAgreementsInner as GetOrganizationResponseBillingAgreementsInner
+from kinde_sdk.management.models.get_organization_role_users_response import GetOrganizationRoleUsersResponse as GetOrganizationRoleUsersResponse
+from kinde_sdk.management.models.get_organization_role_users_response_users_inner import GetOrganizationRoleUsersResponseUsersInner as GetOrganizationRoleUsersResponseUsersInner
from kinde_sdk.management.models.get_organization_users_response import GetOrganizationUsersResponse as GetOrganizationUsersResponse
from kinde_sdk.management.models.get_organizations_response import GetOrganizationsResponse as GetOrganizationsResponse
from kinde_sdk.management.models.get_organizations_user_permissions_response import GetOrganizationsUserPermissionsResponse as GetOrganizationsUserPermissionsResponse
from kinde_sdk.management.models.get_organizations_user_roles_response import GetOrganizationsUserRolesResponse as GetOrganizationsUserRolesResponse
+from kinde_sdk.management.models.get_passkey200_response import GetPasskey200Response as GetPasskey200Response
from kinde_sdk.management.models.get_permissions_response import GetPermissionsResponse as GetPermissionsResponse
from kinde_sdk.management.models.get_properties_response import GetPropertiesResponse as GetPropertiesResponse
from kinde_sdk.management.models.get_property_values_response import GetPropertyValuesResponse as GetPropertyValuesResponse
from kinde_sdk.management.models.get_redirect_callback_urls_response import GetRedirectCallbackUrlsResponse as GetRedirectCallbackUrlsResponse
from kinde_sdk.management.models.get_role_response import GetRoleResponse as GetRoleResponse
from kinde_sdk.management.models.get_role_response_role import GetRoleResponseRole as GetRoleResponseRole
+from kinde_sdk.management.models.get_role_users_response import GetRoleUsersResponse as GetRoleUsersResponse
+from kinde_sdk.management.models.get_role_users_response_users_inner import GetRoleUsersResponseUsersInner as GetRoleUsersResponseUsersInner
from kinde_sdk.management.models.get_roles_response import GetRolesResponse as GetRolesResponse
from kinde_sdk.management.models.get_subscriber_response import GetSubscriberResponse as GetSubscriberResponse
from kinde_sdk.management.models.get_subscribers_response import GetSubscribersResponse as GetSubscribersResponse
+from kinde_sdk.management.models.get_system_permissions_response import GetSystemPermissionsResponse as GetSystemPermissionsResponse
from kinde_sdk.management.models.get_timezones_response import GetTimezonesResponse as GetTimezonesResponse
from kinde_sdk.management.models.get_timezones_response_timezones_inner import GetTimezonesResponseTimezonesInner as GetTimezonesResponseTimezonesInner
from kinde_sdk.management.models.get_user_mfa_response import GetUserMfaResponse as GetUserMfaResponse
@@ -466,6 +519,7 @@
from kinde_sdk.management.models.model_property import ModelProperty as ModelProperty
from kinde_sdk.management.models.not_found_response import NotFoundResponse as NotFoundResponse
from kinde_sdk.management.models.not_found_response_errors import NotFoundResponseErrors as NotFoundResponseErrors
+from kinde_sdk.management.models.organization_invite import OrganizationInvite as OrganizationInvite
from kinde_sdk.management.models.organization_item_schema import OrganizationItemSchema as OrganizationItemSchema
from kinde_sdk.management.models.organization_user import OrganizationUser as OrganizationUser
from kinde_sdk.management.models.organization_user_permission import OrganizationUserPermission as OrganizationUserPermission
@@ -491,6 +545,7 @@
from kinde_sdk.management.models.role import Role as Role
from kinde_sdk.management.models.role_permissions_response import RolePermissionsResponse as RolePermissionsResponse
from kinde_sdk.management.models.role_scopes_response import RoleScopesResponse as RoleScopesResponse
+from kinde_sdk.management.models.role_system_permissions_response import RoleSystemPermissionsResponse as RoleSystemPermissionsResponse
from kinde_sdk.management.models.roles import Roles as Roles
from kinde_sdk.management.models.rotate_api_key_response import RotateApiKeyResponse as RotateApiKeyResponse
from kinde_sdk.management.models.rotate_api_key_response_api_key import RotateApiKeyResponseApiKey as RotateApiKeyResponseApiKey
@@ -502,6 +557,7 @@
from kinde_sdk.management.models.subscriber import Subscriber as Subscriber
from kinde_sdk.management.models.subscribers_subscriber import SubscribersSubscriber as SubscribersSubscriber
from kinde_sdk.management.models.success_response import SuccessResponse as SuccessResponse
+from kinde_sdk.management.models.system_permissions import SystemPermissions as SystemPermissions
from kinde_sdk.management.models.update_api_applications_request import UpdateAPIApplicationsRequest as UpdateAPIApplicationsRequest
from kinde_sdk.management.models.update_api_applications_request_applications_inner import UpdateAPIApplicationsRequestApplicationsInner as UpdateAPIApplicationsRequestApplicationsInner
from kinde_sdk.management.models.update_api_scope_request import UpdateAPIScopeRequest as UpdateAPIScopeRequest
@@ -514,20 +570,30 @@
from kinde_sdk.management.models.update_connection_request import UpdateConnectionRequest as UpdateConnectionRequest
from kinde_sdk.management.models.update_connection_request_options import UpdateConnectionRequestOptions as UpdateConnectionRequestOptions
from kinde_sdk.management.models.update_connection_request_options_one_of import UpdateConnectionRequestOptionsOneOf as UpdateConnectionRequestOptionsOneOf
+from kinde_sdk.management.models.update_connection_request_options_one_of1 import UpdateConnectionRequestOptionsOneOf1 as UpdateConnectionRequestOptionsOneOf1
+from kinde_sdk.management.models.update_directory_request import UpdateDirectoryRequest as UpdateDirectoryRequest
+from kinde_sdk.management.models.update_directory_response import UpdateDirectoryResponse as UpdateDirectoryResponse
from kinde_sdk.management.models.update_environement_feature_flag_override_request import UpdateEnvironementFeatureFlagOverrideRequest as UpdateEnvironementFeatureFlagOverrideRequest
from kinde_sdk.management.models.update_environment_variable_request import UpdateEnvironmentVariableRequest as UpdateEnvironmentVariableRequest
from kinde_sdk.management.models.update_environment_variable_response import UpdateEnvironmentVariableResponse as UpdateEnvironmentVariableResponse
from kinde_sdk.management.models.update_identity_request import UpdateIdentityRequest as UpdateIdentityRequest
+from kinde_sdk.management.models.update_organization_passkey200_response import UpdateOrganizationPasskey200Response as UpdateOrganizationPasskey200Response
+from kinde_sdk.management.models.update_organization_passkey_request import UpdateOrganizationPasskeyRequest as UpdateOrganizationPasskeyRequest
from kinde_sdk.management.models.update_organization_properties_request import UpdateOrganizationPropertiesRequest as UpdateOrganizationPropertiesRequest
from kinde_sdk.management.models.update_organization_request import UpdateOrganizationRequest as UpdateOrganizationRequest
from kinde_sdk.management.models.update_organization_sessions_request import UpdateOrganizationSessionsRequest as UpdateOrganizationSessionsRequest
from kinde_sdk.management.models.update_organization_users_request import UpdateOrganizationUsersRequest as UpdateOrganizationUsersRequest
from kinde_sdk.management.models.update_organization_users_request_users_inner import UpdateOrganizationUsersRequestUsersInner as UpdateOrganizationUsersRequestUsersInner
from kinde_sdk.management.models.update_organization_users_response import UpdateOrganizationUsersResponse as UpdateOrganizationUsersResponse
+from kinde_sdk.management.models.update_passkey200_response import UpdatePasskey200Response as UpdatePasskey200Response
+from kinde_sdk.management.models.update_passkey_request import UpdatePasskeyRequest as UpdatePasskeyRequest
from kinde_sdk.management.models.update_property_request import UpdatePropertyRequest as UpdatePropertyRequest
from kinde_sdk.management.models.update_role_permissions_request import UpdateRolePermissionsRequest as UpdateRolePermissionsRequest
from kinde_sdk.management.models.update_role_permissions_request_permissions_inner import UpdateRolePermissionsRequestPermissionsInner as UpdateRolePermissionsRequestPermissionsInner
from kinde_sdk.management.models.update_role_permissions_response import UpdateRolePermissionsResponse as UpdateRolePermissionsResponse
+from kinde_sdk.management.models.update_role_system_permissions_request import UpdateRoleSystemPermissionsRequest as UpdateRoleSystemPermissionsRequest
+from kinde_sdk.management.models.update_role_system_permissions_request_system_permissions_inner import UpdateRoleSystemPermissionsRequestSystemPermissionsInner as UpdateRoleSystemPermissionsRequestSystemPermissionsInner
+from kinde_sdk.management.models.update_role_system_permissions_response import UpdateRoleSystemPermissionsResponse as UpdateRoleSystemPermissionsResponse
from kinde_sdk.management.models.update_roles_request import UpdateRolesRequest as UpdateRolesRequest
from kinde_sdk.management.models.update_user_request import UpdateUserRequest as UpdateUserRequest
from kinde_sdk.management.models.update_user_response import UpdateUserResponse as UpdateUserResponse
@@ -542,6 +608,7 @@
from kinde_sdk.management.models.users_response import UsersResponse as UsersResponse
from kinde_sdk.management.models.users_response_users_inner import UsersResponseUsersInner as UsersResponseUsersInner
from kinde_sdk.management.models.users_response_users_inner_billing import UsersResponseUsersInnerBilling as UsersResponseUsersInnerBilling
+from kinde_sdk.management.models.users_response_users_inner_identities_inner import UsersResponseUsersInnerIdentitiesInner as UsersResponseUsersInnerIdentitiesInner
from kinde_sdk.management.models.users_response_users_inner_last_organization_sign_ins_inner import UsersResponseUsersInnerLastOrganizationSignInsInner as UsersResponseUsersInnerLastOrganizationSignInsInner
from kinde_sdk.management.models.verify_api_key_request import VerifyApiKeyRequest as VerifyApiKeyRequest
from kinde_sdk.management.models.verify_api_key_response import VerifyApiKeyResponse as VerifyApiKeyResponse
diff --git a/kinde_sdk/management/api/__init__.py b/kinde_sdk/management/api/__init__.py
index 946941ee..dd082dd0 100644
--- a/kinde_sdk/management/api/__init__.py
+++ b/kinde_sdk/management/api/__init__.py
@@ -11,6 +11,7 @@
from kinde_sdk.management.api.callbacks_api import CallbacksApi
from kinde_sdk.management.api.connected_apps_api import ConnectedAppsApi
from kinde_sdk.management.api.connections_api import ConnectionsApi
+from kinde_sdk.management.api.directories_api import DirectoriesApi
from kinde_sdk.management.api.environment_variables_api import EnvironmentVariablesApi
from kinde_sdk.management.api.environments_api import EnvironmentsApi
from kinde_sdk.management.api.feature_flags_api import FeatureFlagsApi
diff --git a/kinde_sdk/management/api/apis_api.py b/kinde_sdk/management/api/apis_api.py
index 4d608660..380710f9 100644
--- a/kinde_sdk/management/api/apis_api.py
+++ b/kinde_sdk/management/api/apis_api.py
@@ -2615,7 +2615,7 @@ def _get_api_scopes_serialize(
@validate_call
def get_apis(
self,
- expand: Annotated[Optional[StrictStr], Field(description="Specify additional data to retrieve. Use \"scopes\".")] = None,
+ expand: Annotated[Optional[StrictStr], Field(description="Additional data to include in the response. Allowed value: \"scopes\".")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2633,7 +2633,7 @@ def get_apis(
Returns a list of your APIs. The APIs are returned sorted by name.
read:apis
- :param expand: Specify additional data to retrieve. Use \"scopes\".
+ :param expand: Additional data to include in the response. Allowed value: \"scopes\".
:type expand: str
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
@@ -2685,7 +2685,7 @@ def get_apis(
@validate_call
def get_apis_with_http_info(
self,
- expand: Annotated[Optional[StrictStr], Field(description="Specify additional data to retrieve. Use \"scopes\".")] = None,
+ expand: Annotated[Optional[StrictStr], Field(description="Additional data to include in the response. Allowed value: \"scopes\".")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2703,7 +2703,7 @@ def get_apis_with_http_info(
Returns a list of your APIs. The APIs are returned sorted by name. read:apis
- :param expand: Specify additional data to retrieve. Use \"scopes\".
+ :param expand: Additional data to include in the response. Allowed value: \"scopes\".
:type expand: str
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
@@ -2755,7 +2755,7 @@ def get_apis_with_http_info(
@validate_call
def get_apis_without_preload_content(
self,
- expand: Annotated[Optional[StrictStr], Field(description="Specify additional data to retrieve. Use \"scopes\".")] = None,
+ expand: Annotated[Optional[StrictStr], Field(description="Additional data to include in the response. Allowed value: \"scopes\".")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2773,7 +2773,7 @@ def get_apis_without_preload_content(
Returns a list of your APIs. The APIs are returned sorted by name. read:apis
- :param expand: Specify additional data to retrieve. Use \"scopes\".
+ :param expand: Additional data to include in the response. Allowed value: \"scopes\".
:type expand: str
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
diff --git a/kinde_sdk/management/api/billing_entitlements_api.py b/kinde_sdk/management/api/billing_entitlements_api.py
index 93a3376f..a48c878a 100644
--- a/kinde_sdk/management/api/billing_entitlements_api.py
+++ b/kinde_sdk/management/api/billing_entitlements_api.py
@@ -48,7 +48,7 @@ def get_billing_entitlements(
starting_after: Annotated[Optional[StrictStr], Field(description="The ID of the billing entitlement to start after.")] = None,
ending_before: Annotated[Optional[StrictStr], Field(description="The ID of the billing entitlement to end before.")] = None,
max_value: Annotated[Optional[StrictStr], Field(description="When the maximum limit of an entitlement is null, this value is returned as the maximum limit")] = None,
- expand: Annotated[Optional[StrictStr], Field(description="Specify additional plan data to retrieve. Use \"plans\".")] = None,
+ expand: Annotated[Optional[StrictStr], Field(description="Additional plan data to include in the response. Allowed value: \"plans\".")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -76,7 +76,7 @@ def get_billing_entitlements(
:type ending_before: str
:param max_value: When the maximum limit of an entitlement is null, this value is returned as the maximum limit
:type max_value: str
- :param expand: Specify additional plan data to retrieve. Use \"plans\".
+ :param expand: Additional plan data to include in the response. Allowed value: \"plans\".
:type expand: str
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
@@ -138,7 +138,7 @@ def get_billing_entitlements_with_http_info(
starting_after: Annotated[Optional[StrictStr], Field(description="The ID of the billing entitlement to start after.")] = None,
ending_before: Annotated[Optional[StrictStr], Field(description="The ID of the billing entitlement to end before.")] = None,
max_value: Annotated[Optional[StrictStr], Field(description="When the maximum limit of an entitlement is null, this value is returned as the maximum limit")] = None,
- expand: Annotated[Optional[StrictStr], Field(description="Specify additional plan data to retrieve. Use \"plans\".")] = None,
+ expand: Annotated[Optional[StrictStr], Field(description="Additional plan data to include in the response. Allowed value: \"plans\".")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -166,7 +166,7 @@ def get_billing_entitlements_with_http_info(
:type ending_before: str
:param max_value: When the maximum limit of an entitlement is null, this value is returned as the maximum limit
:type max_value: str
- :param expand: Specify additional plan data to retrieve. Use \"plans\".
+ :param expand: Additional plan data to include in the response. Allowed value: \"plans\".
:type expand: str
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
@@ -228,7 +228,7 @@ def get_billing_entitlements_without_preload_content(
starting_after: Annotated[Optional[StrictStr], Field(description="The ID of the billing entitlement to start after.")] = None,
ending_before: Annotated[Optional[StrictStr], Field(description="The ID of the billing entitlement to end before.")] = None,
max_value: Annotated[Optional[StrictStr], Field(description="When the maximum limit of an entitlement is null, this value is returned as the maximum limit")] = None,
- expand: Annotated[Optional[StrictStr], Field(description="Specify additional plan data to retrieve. Use \"plans\".")] = None,
+ expand: Annotated[Optional[StrictStr], Field(description="Additional plan data to include in the response. Allowed value: \"plans\".")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -256,7 +256,7 @@ def get_billing_entitlements_without_preload_content(
:type ending_before: str
:param max_value: When the maximum limit of an entitlement is null, this value is returned as the maximum limit
:type max_value: str
- :param expand: Specify additional plan data to retrieve. Use \"plans\".
+ :param expand: Additional plan data to include in the response. Allowed value: \"plans\".
:type expand: str
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
diff --git a/kinde_sdk/management/api/directories_api.py b/kinde_sdk/management/api/directories_api.py
new file mode 100644
index 00000000..a114ad0f
--- /dev/null
+++ b/kinde_sdk/management/api/directories_api.py
@@ -0,0 +1,1485 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
+
+ Do not edit the class manually.
+""" # noqa: E501
+
+import warnings
+from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
+from typing import Any, Dict, List, Optional, Tuple, Union
+from typing_extensions import Annotated
+
+from pydantic import Field, StrictInt, StrictStr
+from typing import Optional
+from typing_extensions import Annotated
+from kinde_sdk.management.models.create_directory_request import CreateDirectoryRequest
+from kinde_sdk.management.models.create_directory_response import CreateDirectoryResponse
+from kinde_sdk.management.models.delete_directory_response import DeleteDirectoryResponse
+from kinde_sdk.management.models.get_directories_response import GetDirectoriesResponse
+from kinde_sdk.management.models.get_directory_response import GetDirectoryResponse
+from kinde_sdk.management.models.update_directory_request import UpdateDirectoryRequest
+from kinde_sdk.management.models.update_directory_response import UpdateDirectoryResponse
+
+from kinde_sdk.management.api_client import ApiClient, RequestSerialized
+from kinde_sdk.management.api_response import ApiResponse
+from kinde_sdk.management.rest import RESTResponseType
+
+
+class DirectoriesApi:
+ """NOTE: This class is auto generated by OpenAPI Generator
+ Ref: https://openapi-generator.tech
+
+ Do not edit the class manually.
+ """
+
+ def __init__(self, api_client=None) -> None:
+ if api_client is None:
+ api_client = ApiClient.get_default()
+ self.api_client = api_client
+
+
+ @validate_call
+ def create_directory(
+ self,
+ create_directory_request: CreateDirectoryRequest,
+ _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,
+ ) -> CreateDirectoryResponse:
+ """Create SCIM directory
+
+ Create a new SCIM directory for user and group synchronization. create:scim_directories
+
+ :param create_directory_request: (required)
+ :type create_directory_request: CreateDirectoryRequest
+ :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._create_directory_serialize(
+ create_directory_request=create_directory_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "CreateDirectoryResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '409': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ 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 create_directory_with_http_info(
+ self,
+ create_directory_request: CreateDirectoryRequest,
+ _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[CreateDirectoryResponse]:
+ """Create SCIM directory
+
+ Create a new SCIM directory for user and group synchronization. create:scim_directories
+
+ :param create_directory_request: (required)
+ :type create_directory_request: CreateDirectoryRequest
+ :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._create_directory_serialize(
+ create_directory_request=create_directory_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "CreateDirectoryResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '409': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ 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 create_directory_without_preload_content(
+ self,
+ create_directory_request: CreateDirectoryRequest,
+ _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:
+ """Create SCIM directory
+
+ Create a new SCIM directory for user and group synchronization. create:scim_directories
+
+ :param create_directory_request: (required)
+ :type create_directory_request: CreateDirectoryRequest
+ :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._create_directory_serialize(
+ create_directory_request=create_directory_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '201': "CreateDirectoryResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '409': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _create_directory_serialize(
+ self,
+ create_directory_request,
+ _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
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if create_directory_request is not None:
+ _body_params = create_directory_request
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'kindeBearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='POST',
+ resource_path='/api/v1/directories',
+ 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 delete_directory(
+ self,
+ directory_id: Annotated[StrictStr, Field(description="The directory's ID.")],
+ _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,
+ ) -> DeleteDirectoryResponse:
+ """Delete SCIM directory
+
+ Delete a SCIM directory and all associated data. delete:scim_directories
+
+ :param directory_id: The directory's ID. (required)
+ :type directory_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
+ (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._delete_directory_serialize(
+ directory_id=directory_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "DeleteDirectoryResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '404': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ 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 delete_directory_with_http_info(
+ self,
+ directory_id: Annotated[StrictStr, Field(description="The directory's ID.")],
+ _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[DeleteDirectoryResponse]:
+ """Delete SCIM directory
+
+ Delete a SCIM directory and all associated data. delete:scim_directories
+
+ :param directory_id: The directory's ID. (required)
+ :type directory_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
+ (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._delete_directory_serialize(
+ directory_id=directory_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "DeleteDirectoryResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '404': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ 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 delete_directory_without_preload_content(
+ self,
+ directory_id: Annotated[StrictStr, Field(description="The directory's ID.")],
+ _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:
+ """Delete SCIM directory
+
+ Delete a SCIM directory and all associated data. delete:scim_directories
+
+ :param directory_id: The directory's ID. (required)
+ :type directory_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
+ (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._delete_directory_serialize(
+ directory_id=directory_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "DeleteDirectoryResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '404': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _delete_directory_serialize(
+ self,
+ directory_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 directory_id is not None:
+ _path_params['directory_id'] = directory_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] = [
+ 'kindeBearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/api/v1/directories/{directory_id}',
+ 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_directories(
+ self,
+ page_size: Annotated[Optional[StrictInt], Field(description="Number of results per page. Defaults to 50 if parameter not sent.")] = None,
+ starting_after: Annotated[Optional[StrictStr], Field(description="The ID of the directory to start after.")] = None,
+ organization_code: Annotated[Optional[StrictStr], Field(description="Filter by organization code to get directories for a specific organization.")] = None,
+ _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,
+ ) -> GetDirectoriesResponse:
+ """Get SCIM directories
+
+ Returns a list of SCIM directories for your organization. read:scim_directories
+
+ :param page_size: Number of results per page. Defaults to 50 if parameter not sent.
+ :type page_size: int
+ :param starting_after: The ID of the directory to start after.
+ :type starting_after: str
+ :param organization_code: Filter by organization code to get directories for a specific organization.
+ :type organization_code: 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
+ (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_directories_serialize(
+ page_size=page_size,
+ starting_after=starting_after,
+ organization_code=organization_code,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "GetDirectoriesResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ 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_directories_with_http_info(
+ self,
+ page_size: Annotated[Optional[StrictInt], Field(description="Number of results per page. Defaults to 50 if parameter not sent.")] = None,
+ starting_after: Annotated[Optional[StrictStr], Field(description="The ID of the directory to start after.")] = None,
+ organization_code: Annotated[Optional[StrictStr], Field(description="Filter by organization code to get directories for a specific organization.")] = None,
+ _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[GetDirectoriesResponse]:
+ """Get SCIM directories
+
+ Returns a list of SCIM directories for your organization. read:scim_directories
+
+ :param page_size: Number of results per page. Defaults to 50 if parameter not sent.
+ :type page_size: int
+ :param starting_after: The ID of the directory to start after.
+ :type starting_after: str
+ :param organization_code: Filter by organization code to get directories for a specific organization.
+ :type organization_code: 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
+ (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_directories_serialize(
+ page_size=page_size,
+ starting_after=starting_after,
+ organization_code=organization_code,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "GetDirectoriesResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ 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_directories_without_preload_content(
+ self,
+ page_size: Annotated[Optional[StrictInt], Field(description="Number of results per page. Defaults to 50 if parameter not sent.")] = None,
+ starting_after: Annotated[Optional[StrictStr], Field(description="The ID of the directory to start after.")] = None,
+ organization_code: Annotated[Optional[StrictStr], Field(description="Filter by organization code to get directories for a specific organization.")] = None,
+ _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 SCIM directories
+
+ Returns a list of SCIM directories for your organization. read:scim_directories
+
+ :param page_size: Number of results per page. Defaults to 50 if parameter not sent.
+ :type page_size: int
+ :param starting_after: The ID of the directory to start after.
+ :type starting_after: str
+ :param organization_code: Filter by organization code to get directories for a specific organization.
+ :type organization_code: 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
+ (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_directories_serialize(
+ page_size=page_size,
+ starting_after=starting_after,
+ organization_code=organization_code,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "GetDirectoriesResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_directories_serialize(
+ self,
+ page_size,
+ starting_after,
+ organization_code,
+ _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
+ # process the query parameters
+ if page_size is not None:
+
+ _query_params.append(('page_size', page_size))
+
+ if starting_after is not None:
+
+ _query_params.append(('starting_after', starting_after))
+
+ if organization_code is not None:
+
+ _query_params.append(('organization_code', organization_code))
+
+ # 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] = [
+ 'kindeBearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/api/v1/directories',
+ 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_directory(
+ self,
+ directory_id: Annotated[StrictStr, Field(description="The directory's ID.")],
+ _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,
+ ) -> GetDirectoryResponse:
+ """Get SCIM directory
+
+ Retrieve SCIM directory details by ID. read:scim_directories
+
+ :param directory_id: The directory's ID. (required)
+ :type directory_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
+ (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_directory_serialize(
+ directory_id=directory_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "GetDirectoryResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '404': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ 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_directory_with_http_info(
+ self,
+ directory_id: Annotated[StrictStr, Field(description="The directory's ID.")],
+ _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[GetDirectoryResponse]:
+ """Get SCIM directory
+
+ Retrieve SCIM directory details by ID. read:scim_directories
+
+ :param directory_id: The directory's ID. (required)
+ :type directory_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
+ (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_directory_serialize(
+ directory_id=directory_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "GetDirectoryResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '404': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ 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_directory_without_preload_content(
+ self,
+ directory_id: Annotated[StrictStr, Field(description="The directory's ID.")],
+ _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 SCIM directory
+
+ Retrieve SCIM directory details by ID. read:scim_directories
+
+ :param directory_id: The directory's ID. (required)
+ :type directory_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
+ (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_directory_serialize(
+ directory_id=directory_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "GetDirectoryResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '404': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_directory_serialize(
+ self,
+ directory_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 directory_id is not None:
+ _path_params['directory_id'] = directory_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] = [
+ 'kindeBearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/api/v1/directories/{directory_id}',
+ 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 update_directory(
+ self,
+ directory_id: Annotated[StrictStr, Field(description="The directory's ID.")],
+ update_directory_request: UpdateDirectoryRequest,
+ _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,
+ ) -> UpdateDirectoryResponse:
+ """Update SCIM directory
+
+ Update SCIM directory configuration. update:scim_directories
+
+ :param directory_id: The directory's ID. (required)
+ :type directory_id: str
+ :param update_directory_request: (required)
+ :type update_directory_request: UpdateDirectoryRequest
+ :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._update_directory_serialize(
+ directory_id=directory_id,
+ update_directory_request=update_directory_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UpdateDirectoryResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '404': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ 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 update_directory_with_http_info(
+ self,
+ directory_id: Annotated[StrictStr, Field(description="The directory's ID.")],
+ update_directory_request: UpdateDirectoryRequest,
+ _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[UpdateDirectoryResponse]:
+ """Update SCIM directory
+
+ Update SCIM directory configuration. update:scim_directories
+
+ :param directory_id: The directory's ID. (required)
+ :type directory_id: str
+ :param update_directory_request: (required)
+ :type update_directory_request: UpdateDirectoryRequest
+ :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._update_directory_serialize(
+ directory_id=directory_id,
+ update_directory_request=update_directory_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UpdateDirectoryResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '404': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ 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 update_directory_without_preload_content(
+ self,
+ directory_id: Annotated[StrictStr, Field(description="The directory's ID.")],
+ update_directory_request: UpdateDirectoryRequest,
+ _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:
+ """Update SCIM directory
+
+ Update SCIM directory configuration. update:scim_directories
+
+ :param directory_id: The directory's ID. (required)
+ :type directory_id: str
+ :param update_directory_request: (required)
+ :type update_directory_request: UpdateDirectoryRequest
+ :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._update_directory_serialize(
+ directory_id=directory_id,
+ update_directory_request=update_directory_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UpdateDirectoryResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '404': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _update_directory_serialize(
+ self,
+ directory_id,
+ update_directory_request,
+ _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 directory_id is not None:
+ _path_params['directory_id'] = directory_id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if update_directory_request is not None:
+ _body_params = update_directory_request
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'kindeBearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PATCH',
+ resource_path='/api/v1/directories/{directory_id}',
+ 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
+ )
+
+
diff --git a/kinde_sdk/management/api/environments_api.py b/kinde_sdk/management/api/environments_api.py
index 4c23e84c..2f9149c3 100644
--- a/kinde_sdk/management/api/environments_api.py
+++ b/kinde_sdk/management/api/environments_api.py
@@ -22,9 +22,12 @@
from typing_extensions import Annotated
from kinde_sdk.management.models.get_environment_feature_flags_response import GetEnvironmentFeatureFlagsResponse
from kinde_sdk.management.models.get_environment_response import GetEnvironmentResponse
+from kinde_sdk.management.models.get_passkey200_response import GetPasskey200Response
from kinde_sdk.management.models.read_env_logo_response import ReadEnvLogoResponse
from kinde_sdk.management.models.success_response import SuccessResponse
from kinde_sdk.management.models.update_environement_feature_flag_override_request import UpdateEnvironementFeatureFlagOverrideRequest
+from kinde_sdk.management.models.update_passkey200_response import UpdatePasskey200Response
+from kinde_sdk.management.models.update_passkey_request import UpdatePasskeyRequest
from kinde_sdk.management.api_client import ApiClient, RequestSerialized
from kinde_sdk.management.api_response import ApiResponse
@@ -1653,6 +1656,261 @@ def _get_environment_serialize(
+ @validate_call
+ def get_passkey(
+ self,
+ _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,
+ ) -> GetPasskey200Response:
+ """Get environment passkey settings
+
+ Retrieve passkey policy for the current environment. read:passkey
+
+ :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_passkey_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "GetPasskey200Response",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ 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_passkey_with_http_info(
+ self,
+ _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[GetPasskey200Response]:
+ """Get environment passkey settings
+
+ Retrieve passkey policy for the current environment. read:passkey
+
+ :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_passkey_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "GetPasskey200Response",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ 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_passkey_without_preload_content(
+ self,
+ _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 environment passkey settings
+
+ Retrieve passkey policy for the current environment. read:passkey
+
+ :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_passkey_serialize(
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "GetPasskey200Response",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_passkey_serialize(
+ self,
+ _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
+ # 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] = [
+ 'kindeBearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/api/v1/passkey',
+ 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 read_logo(
self,
@@ -2205,3 +2463,286 @@ def _update_environement_feature_flag_override_serialize(
)
+
+
+ @validate_call
+ def update_passkey(
+ self,
+ update_passkey_request: Annotated[UpdatePasskeyRequest, Field(description="Environment passkey settings.")],
+ _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,
+ ) -> UpdatePasskey200Response:
+ """Update environment passkey settings
+
+ Set the passkey policy for the current environment. Policies other than `off` require the `passkeys` entitlement. update:passkey
+
+ :param update_passkey_request: Environment passkey settings. (required)
+ :type update_passkey_request: UpdatePasskeyRequest
+ :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._update_passkey_serialize(
+ update_passkey_request=update_passkey_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UpdatePasskey200Response",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ 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 update_passkey_with_http_info(
+ self,
+ update_passkey_request: Annotated[UpdatePasskeyRequest, Field(description="Environment passkey settings.")],
+ _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[UpdatePasskey200Response]:
+ """Update environment passkey settings
+
+ Set the passkey policy for the current environment. Policies other than `off` require the `passkeys` entitlement. update:passkey
+
+ :param update_passkey_request: Environment passkey settings. (required)
+ :type update_passkey_request: UpdatePasskeyRequest
+ :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._update_passkey_serialize(
+ update_passkey_request=update_passkey_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UpdatePasskey200Response",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ 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 update_passkey_without_preload_content(
+ self,
+ update_passkey_request: Annotated[UpdatePasskeyRequest, Field(description="Environment passkey settings.")],
+ _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:
+ """Update environment passkey settings
+
+ Set the passkey policy for the current environment. Policies other than `off` require the `passkeys` entitlement. update:passkey
+
+ :param update_passkey_request: Environment passkey settings. (required)
+ :type update_passkey_request: UpdatePasskeyRequest
+ :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._update_passkey_serialize(
+ update_passkey_request=update_passkey_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UpdatePasskey200Response",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _update_passkey_serialize(
+ self,
+ update_passkey_request,
+ _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
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if update_passkey_request is not None:
+ _body_params = update_passkey_request
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'kindeBearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PUT',
+ resource_path='/api/v1/passkey',
+ 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
+ )
+
+
diff --git a/kinde_sdk/management/api/organizations_api.py b/kinde_sdk/management/api/organizations_api.py
index d6b041f0..4285f2b0 100644
--- a/kinde_sdk/management/api/organizations_api.py
+++ b/kinde_sdk/management/api/organizations_api.py
@@ -17,18 +17,24 @@
from typing import Any, Dict, List, Optional, Tuple, Union
from typing_extensions import Annotated
-from pydantic import Field, StrictBytes, StrictInt, StrictStr, field_validator
+from pydantic import Field, StrictBool, StrictBytes, StrictInt, StrictStr, field_validator
from typing import Optional, Tuple, Union
from typing_extensions import Annotated
from kinde_sdk.management.models.add_organization_users_request import AddOrganizationUsersRequest
from kinde_sdk.management.models.add_organization_users_response import AddOrganizationUsersResponse
+from kinde_sdk.management.models.create_organization_invite_request import CreateOrganizationInviteRequest
+from kinde_sdk.management.models.create_organization_invite_response import CreateOrganizationInviteResponse
from kinde_sdk.management.models.create_organization_request import CreateOrganizationRequest
from kinde_sdk.management.models.create_organization_response import CreateOrganizationResponse
from kinde_sdk.management.models.create_organization_user_permission_request import CreateOrganizationUserPermissionRequest
from kinde_sdk.management.models.create_organization_user_role_request import CreateOrganizationUserRoleRequest
from kinde_sdk.management.models.get_connections_response import GetConnectionsResponse
from kinde_sdk.management.models.get_organization_feature_flags_response import GetOrganizationFeatureFlagsResponse
+from kinde_sdk.management.models.get_organization_invite_response import GetOrganizationInviteResponse
+from kinde_sdk.management.models.get_organization_invites_response import GetOrganizationInvitesResponse
+from kinde_sdk.management.models.get_organization_passkey200_response import GetOrganizationPasskey200Response
from kinde_sdk.management.models.get_organization_response import GetOrganizationResponse
+from kinde_sdk.management.models.get_organization_role_users_response import GetOrganizationRoleUsersResponse
from kinde_sdk.management.models.get_organization_users_response import GetOrganizationUsersResponse
from kinde_sdk.management.models.get_organizations_response import GetOrganizationsResponse
from kinde_sdk.management.models.get_organizations_user_permissions_response import GetOrganizationsUserPermissionsResponse
@@ -38,6 +44,8 @@
from kinde_sdk.management.models.read_logo_response import ReadLogoResponse
from kinde_sdk.management.models.replace_organization_mfa_request import ReplaceOrganizationMFARequest
from kinde_sdk.management.models.success_response import SuccessResponse
+from kinde_sdk.management.models.update_organization_passkey200_response import UpdateOrganizationPasskey200Response
+from kinde_sdk.management.models.update_organization_passkey_request import UpdateOrganizationPasskeyRequest
from kinde_sdk.management.models.update_organization_properties_request import UpdateOrganizationPropertiesRequest
from kinde_sdk.management.models.update_organization_request import UpdateOrganizationRequest
from kinde_sdk.management.models.update_organization_sessions_request import UpdateOrganizationSessionsRequest
@@ -1272,11 +1280,10 @@ def _create_organization_serialize(
@validate_call
- def create_organization_user_permission(
+ def create_organization_invite(
self,
org_code: Annotated[StrictStr, Field(description="The organization's code.")],
- user_id: Annotated[StrictStr, Field(description="The user's id.")],
- create_organization_user_permission_request: Annotated[CreateOrganizationUserPermissionRequest, Field(description="Permission details.")],
+ create_organization_invite_request: Annotated[CreateOrganizationInviteRequest, Field(description="Invitation details. `email` is capped at 254 characters (RFC 5321). `first_name` and `last_name` are capped at 64 characters each. Inputs over these limits are rejected with `EMAIL_TOO_LONG`, `FIRST_NAME_TOO_LONG`, or `LAST_NAME_TOO_LONG`.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1289,17 +1296,15 @@ def create_organization_user_permission(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> SuccessResponse:
- """Add Organization User Permission
+ ) -> CreateOrganizationInviteResponse:
+ """Create organization invite
- Add permission to an organization user. create:organization_user_permissions
+ Create a new invitation for an organization. An invitation email will be sent to the provided email address if `send_email` is set to `true`. Invitations cannot be created for organizations that are managed by directory sync; user and role changes for those organizations must be made in the upstream identity provider. Roles that require an explicit assignment permission cannot be granted to an invitee unless the caller (or the user the token represents) holds that permission. On Kinde-hosted plans, roles outside `owner`/`admin` additionally require the `extended_roles` entitlement. Per-organization rate limits apply: a maximum number of invitations may be created per rolling 24 hour window, and a maximum number of active (non-accepted, non-revoked) invitations may exist at any time. Requests that exceed either limit are rejected. create:organization_invites
:param org_code: The organization's code. (required)
:type org_code: str
- :param user_id: The user's id. (required)
- :type user_id: str
- :param create_organization_user_permission_request: Permission details. (required)
- :type create_organization_user_permission_request: CreateOrganizationUserPermissionRequest
+ :param create_organization_invite_request: Invitation details. `email` is capped at 254 characters (RFC 5321). `first_name` and `last_name` are capped at 64 characters each. Inputs over these limits are rejected with `EMAIL_TOO_LONG`, `FIRST_NAME_TOO_LONG`, or `LAST_NAME_TOO_LONG`. (required)
+ :type create_organization_invite_request: CreateOrganizationInviteRequest
: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
@@ -1322,10 +1327,9 @@ def create_organization_user_permission(
:return: Returns the result object.
""" # noqa: E501
- _param = self._create_organization_user_permission_serialize(
+ _param = self._create_organization_invite_serialize(
org_code=org_code,
- user_id=user_id,
- create_organization_user_permission_request=create_organization_user_permission_request,
+ create_organization_invite_request=create_organization_invite_request,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -1333,9 +1337,10 @@ def create_organization_user_permission(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "SuccessResponse",
- '403': None,
- '429': None,
+ '201': "CreateOrganizationInviteResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
@@ -1349,11 +1354,10 @@ def create_organization_user_permission(
@validate_call
- def create_organization_user_permission_with_http_info(
+ def create_organization_invite_with_http_info(
self,
org_code: Annotated[StrictStr, Field(description="The organization's code.")],
- user_id: Annotated[StrictStr, Field(description="The user's id.")],
- create_organization_user_permission_request: Annotated[CreateOrganizationUserPermissionRequest, Field(description="Permission details.")],
+ create_organization_invite_request: Annotated[CreateOrganizationInviteRequest, Field(description="Invitation details. `email` is capped at 254 characters (RFC 5321). `first_name` and `last_name` are capped at 64 characters each. Inputs over these limits are rejected with `EMAIL_TOO_LONG`, `FIRST_NAME_TOO_LONG`, or `LAST_NAME_TOO_LONG`.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1366,17 +1370,15 @@ def create_organization_user_permission_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[SuccessResponse]:
- """Add Organization User Permission
+ ) -> ApiResponse[CreateOrganizationInviteResponse]:
+ """Create organization invite
- Add permission to an organization user. create:organization_user_permissions
+ Create a new invitation for an organization. An invitation email will be sent to the provided email address if `send_email` is set to `true`. Invitations cannot be created for organizations that are managed by directory sync; user and role changes for those organizations must be made in the upstream identity provider. Roles that require an explicit assignment permission cannot be granted to an invitee unless the caller (or the user the token represents) holds that permission. On Kinde-hosted plans, roles outside `owner`/`admin` additionally require the `extended_roles` entitlement. Per-organization rate limits apply: a maximum number of invitations may be created per rolling 24 hour window, and a maximum number of active (non-accepted, non-revoked) invitations may exist at any time. Requests that exceed either limit are rejected. create:organization_invites
:param org_code: The organization's code. (required)
:type org_code: str
- :param user_id: The user's id. (required)
- :type user_id: str
- :param create_organization_user_permission_request: Permission details. (required)
- :type create_organization_user_permission_request: CreateOrganizationUserPermissionRequest
+ :param create_organization_invite_request: Invitation details. `email` is capped at 254 characters (RFC 5321). `first_name` and `last_name` are capped at 64 characters each. Inputs over these limits are rejected with `EMAIL_TOO_LONG`, `FIRST_NAME_TOO_LONG`, or `LAST_NAME_TOO_LONG`. (required)
+ :type create_organization_invite_request: CreateOrganizationInviteRequest
: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
@@ -1399,10 +1401,9 @@ def create_organization_user_permission_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._create_organization_user_permission_serialize(
+ _param = self._create_organization_invite_serialize(
org_code=org_code,
- user_id=user_id,
- create_organization_user_permission_request=create_organization_user_permission_request,
+ create_organization_invite_request=create_organization_invite_request,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -1410,9 +1411,10 @@ def create_organization_user_permission_with_http_info(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "SuccessResponse",
- '403': None,
- '429': None,
+ '201': "CreateOrganizationInviteResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
@@ -1426,11 +1428,10 @@ def create_organization_user_permission_with_http_info(
@validate_call
- def create_organization_user_permission_without_preload_content(
+ def create_organization_invite_without_preload_content(
self,
org_code: Annotated[StrictStr, Field(description="The organization's code.")],
- user_id: Annotated[StrictStr, Field(description="The user's id.")],
- create_organization_user_permission_request: Annotated[CreateOrganizationUserPermissionRequest, Field(description="Permission details.")],
+ create_organization_invite_request: Annotated[CreateOrganizationInviteRequest, Field(description="Invitation details. `email` is capped at 254 characters (RFC 5321). `first_name` and `last_name` are capped at 64 characters each. Inputs over these limits are rejected with `EMAIL_TOO_LONG`, `FIRST_NAME_TOO_LONG`, or `LAST_NAME_TOO_LONG`.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1444,16 +1445,14 @@ def create_organization_user_permission_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """Add Organization User Permission
+ """Create organization invite
- Add permission to an organization user. create:organization_user_permissions
+ Create a new invitation for an organization. An invitation email will be sent to the provided email address if `send_email` is set to `true`. Invitations cannot be created for organizations that are managed by directory sync; user and role changes for those organizations must be made in the upstream identity provider. Roles that require an explicit assignment permission cannot be granted to an invitee unless the caller (or the user the token represents) holds that permission. On Kinde-hosted plans, roles outside `owner`/`admin` additionally require the `extended_roles` entitlement. Per-organization rate limits apply: a maximum number of invitations may be created per rolling 24 hour window, and a maximum number of active (non-accepted, non-revoked) invitations may exist at any time. Requests that exceed either limit are rejected. create:organization_invites
:param org_code: The organization's code. (required)
:type org_code: str
- :param user_id: The user's id. (required)
- :type user_id: str
- :param create_organization_user_permission_request: Permission details. (required)
- :type create_organization_user_permission_request: CreateOrganizationUserPermissionRequest
+ :param create_organization_invite_request: Invitation details. `email` is capped at 254 characters (RFC 5321). `first_name` and `last_name` are capped at 64 characters each. Inputs over these limits are rejected with `EMAIL_TOO_LONG`, `FIRST_NAME_TOO_LONG`, or `LAST_NAME_TOO_LONG`. (required)
+ :type create_organization_invite_request: CreateOrganizationInviteRequest
: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
@@ -1476,10 +1475,9 @@ def create_organization_user_permission_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._create_organization_user_permission_serialize(
+ _param = self._create_organization_invite_serialize(
org_code=org_code,
- user_id=user_id,
- create_organization_user_permission_request=create_organization_user_permission_request,
+ create_organization_invite_request=create_organization_invite_request,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -1487,9 +1485,10 @@ def create_organization_user_permission_without_preload_content(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "SuccessResponse",
- '403': None,
- '429': None,
+ '201': "CreateOrganizationInviteResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
@@ -1498,11 +1497,10 @@ def create_organization_user_permission_without_preload_content(
return response_data.response
- def _create_organization_user_permission_serialize(
+ def _create_organization_invite_serialize(
self,
org_code,
- user_id,
- create_organization_user_permission_request,
+ create_organization_invite_request,
_request_auth,
_content_type,
_headers,
@@ -1526,22 +1524,19 @@ def _create_organization_user_permission_serialize(
# process the path parameters
if org_code is not None:
_path_params['org_code'] = org_code
- if user_id is not None:
- _path_params['user_id'] = user_id
# process the query parameters
# process the header parameters
# process the form parameters
# process the body parameter
- if create_organization_user_permission_request is not None:
- _body_params = create_organization_user_permission_request
+ if create_organization_invite_request is not None:
+ _body_params = create_organization_invite_request
# set the HTTP header `Accept`
if 'Accept' not in _header_params:
_header_params['Accept'] = self.api_client.select_header_accept(
[
- 'application/json',
- 'application/json; charset=utf-8'
+ 'application/json'
]
)
@@ -1566,7 +1561,7 @@ def _create_organization_user_permission_serialize(
return self.api_client.param_serialize(
method='POST',
- resource_path='/api/v1/organizations/{org_code}/users/{user_id}/permissions',
+ resource_path='/api/v1/organization/{org_code}/invites',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1583,11 +1578,11 @@ def _create_organization_user_permission_serialize(
@validate_call
- def create_organization_user_role(
+ def create_organization_user_permission(
self,
org_code: Annotated[StrictStr, Field(description="The organization's code.")],
user_id: Annotated[StrictStr, Field(description="The user's id.")],
- create_organization_user_role_request: Annotated[CreateOrganizationUserRoleRequest, Field(description="Role details.")],
+ create_organization_user_permission_request: Annotated[CreateOrganizationUserPermissionRequest, Field(description="Permission details.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1601,16 +1596,16 @@ def create_organization_user_role(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> SuccessResponse:
- """Add Organization User Role
+ """Add Organization User Permission
- Add role to an organization user. create:organization_user_roles
+ Add permission to an organization user. create:organization_user_permissions
:param org_code: The organization's code. (required)
:type org_code: str
:param user_id: The user's id. (required)
:type user_id: str
- :param create_organization_user_role_request: Role details. (required)
- :type create_organization_user_role_request: CreateOrganizationUserRoleRequest
+ :param create_organization_user_permission_request: Permission details. (required)
+ :type create_organization_user_permission_request: CreateOrganizationUserPermissionRequest
: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
@@ -1633,10 +1628,10 @@ def create_organization_user_role(
:return: Returns the result object.
""" # noqa: E501
- _param = self._create_organization_user_role_serialize(
+ _param = self._create_organization_user_permission_serialize(
org_code=org_code,
user_id=user_id,
- create_organization_user_role_request=create_organization_user_role_request,
+ create_organization_user_permission_request=create_organization_user_permission_request,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -1660,11 +1655,11 @@ def create_organization_user_role(
@validate_call
- def create_organization_user_role_with_http_info(
+ def create_organization_user_permission_with_http_info(
self,
org_code: Annotated[StrictStr, Field(description="The organization's code.")],
user_id: Annotated[StrictStr, Field(description="The user's id.")],
- create_organization_user_role_request: Annotated[CreateOrganizationUserRoleRequest, Field(description="Role details.")],
+ create_organization_user_permission_request: Annotated[CreateOrganizationUserPermissionRequest, Field(description="Permission details.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1678,16 +1673,16 @@ def create_organization_user_role_with_http_info(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> ApiResponse[SuccessResponse]:
- """Add Organization User Role
+ """Add Organization User Permission
- Add role to an organization user. create:organization_user_roles
+ Add permission to an organization user. create:organization_user_permissions
:param org_code: The organization's code. (required)
:type org_code: str
:param user_id: The user's id. (required)
:type user_id: str
- :param create_organization_user_role_request: Role details. (required)
- :type create_organization_user_role_request: CreateOrganizationUserRoleRequest
+ :param create_organization_user_permission_request: Permission details. (required)
+ :type create_organization_user_permission_request: CreateOrganizationUserPermissionRequest
: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
@@ -1710,10 +1705,10 @@ def create_organization_user_role_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._create_organization_user_role_serialize(
+ _param = self._create_organization_user_permission_serialize(
org_code=org_code,
user_id=user_id,
- create_organization_user_role_request=create_organization_user_role_request,
+ create_organization_user_permission_request=create_organization_user_permission_request,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -1737,11 +1732,11 @@ def create_organization_user_role_with_http_info(
@validate_call
- def create_organization_user_role_without_preload_content(
+ def create_organization_user_permission_without_preload_content(
self,
org_code: Annotated[StrictStr, Field(description="The organization's code.")],
user_id: Annotated[StrictStr, Field(description="The user's id.")],
- create_organization_user_role_request: Annotated[CreateOrganizationUserRoleRequest, Field(description="Role details.")],
+ create_organization_user_permission_request: Annotated[CreateOrganizationUserPermissionRequest, Field(description="Permission details.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1755,16 +1750,16 @@ def create_organization_user_role_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """Add Organization User Role
+ """Add Organization User Permission
- Add role to an organization user. create:organization_user_roles
+ Add permission to an organization user. create:organization_user_permissions
:param org_code: The organization's code. (required)
:type org_code: str
:param user_id: The user's id. (required)
:type user_id: str
- :param create_organization_user_role_request: Role details. (required)
- :type create_organization_user_role_request: CreateOrganizationUserRoleRequest
+ :param create_organization_user_permission_request: Permission details. (required)
+ :type create_organization_user_permission_request: CreateOrganizationUserPermissionRequest
: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
@@ -1787,10 +1782,10 @@ def create_organization_user_role_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._create_organization_user_role_serialize(
+ _param = self._create_organization_user_permission_serialize(
org_code=org_code,
user_id=user_id,
- create_organization_user_role_request=create_organization_user_role_request,
+ create_organization_user_permission_request=create_organization_user_permission_request,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -1809,11 +1804,11 @@ def create_organization_user_role_without_preload_content(
return response_data.response
- def _create_organization_user_role_serialize(
+ def _create_organization_user_permission_serialize(
self,
org_code,
user_id,
- create_organization_user_role_request,
+ create_organization_user_permission_request,
_request_auth,
_content_type,
_headers,
@@ -1843,8 +1838,8 @@ def _create_organization_user_role_serialize(
# process the header parameters
# process the form parameters
# process the body parameter
- if create_organization_user_role_request is not None:
- _body_params = create_organization_user_role_request
+ if create_organization_user_permission_request is not None:
+ _body_params = create_organization_user_permission_request
# set the HTTP header `Accept`
@@ -1877,7 +1872,7 @@ def _create_organization_user_role_serialize(
return self.api_client.param_serialize(
method='POST',
- resource_path='/api/v1/organizations/{org_code}/users/{user_id}/roles',
+ resource_path='/api/v1/organizations/{org_code}/users/{user_id}/permissions',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -1894,9 +1889,11 @@ def _create_organization_user_role_serialize(
@validate_call
- def delete_organization(
+ def create_organization_user_role(
self,
- org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ user_id: Annotated[StrictStr, Field(description="The user's id.")],
+ create_organization_user_role_request: Annotated[CreateOrganizationUserRoleRequest, Field(description="Role details.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1910,12 +1907,16 @@ def delete_organization(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> SuccessResponse:
- """Delete Organization
+ """Add Organization User Role
- Delete an organization. delete:organizations
+ Add role to an organization user. create:organization_user_roles
- :param org_code: The identifier for the organization. (required)
+ :param org_code: The organization's code. (required)
:type org_code: str
+ :param user_id: The user's id. (required)
+ :type user_id: str
+ :param create_organization_user_role_request: Role details. (required)
+ :type create_organization_user_role_request: CreateOrganizationUserRoleRequest
: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
@@ -1938,8 +1939,10 @@ def delete_organization(
:return: Returns the result object.
""" # noqa: E501
- _param = self._delete_organization_serialize(
+ _param = self._create_organization_user_role_serialize(
org_code=org_code,
+ user_id=user_id,
+ create_organization_user_role_request=create_organization_user_role_request,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -1948,10 +1951,8 @@ def delete_organization(
_response_types_map: Dict[str, Optional[str]] = {
'200': "SuccessResponse",
- '400': "ErrorResponse",
- '403': "ErrorResponse",
- '404': "NotFoundResponse",
- '429': "ErrorResponse",
+ '403': None,
+ '429': None,
}
response_data = self.api_client.call_api(
*_param,
@@ -1965,9 +1966,11 @@ def delete_organization(
@validate_call
- def delete_organization_with_http_info(
+ def create_organization_user_role_with_http_info(
self,
- org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ user_id: Annotated[StrictStr, Field(description="The user's id.")],
+ create_organization_user_role_request: Annotated[CreateOrganizationUserRoleRequest, Field(description="Role details.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1981,12 +1984,16 @@ def delete_organization_with_http_info(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> ApiResponse[SuccessResponse]:
- """Delete Organization
+ """Add Organization User Role
- Delete an organization. delete:organizations
+ Add role to an organization user. create:organization_user_roles
- :param org_code: The identifier for the organization. (required)
+ :param org_code: The organization's code. (required)
:type org_code: str
+ :param user_id: The user's id. (required)
+ :type user_id: str
+ :param create_organization_user_role_request: Role details. (required)
+ :type create_organization_user_role_request: CreateOrganizationUserRoleRequest
: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
@@ -2009,8 +2016,10 @@ def delete_organization_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._delete_organization_serialize(
+ _param = self._create_organization_user_role_serialize(
org_code=org_code,
+ user_id=user_id,
+ create_organization_user_role_request=create_organization_user_role_request,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -2019,10 +2028,8 @@ def delete_organization_with_http_info(
_response_types_map: Dict[str, Optional[str]] = {
'200': "SuccessResponse",
- '400': "ErrorResponse",
- '403': "ErrorResponse",
- '404': "NotFoundResponse",
- '429': "ErrorResponse",
+ '403': None,
+ '429': None,
}
response_data = self.api_client.call_api(
*_param,
@@ -2036,9 +2043,11 @@ def delete_organization_with_http_info(
@validate_call
- def delete_organization_without_preload_content(
+ def create_organization_user_role_without_preload_content(
self,
- org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ user_id: Annotated[StrictStr, Field(description="The user's id.")],
+ create_organization_user_role_request: Annotated[CreateOrganizationUserRoleRequest, Field(description="Role details.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2052,12 +2061,16 @@ def delete_organization_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """Delete Organization
+ """Add Organization User Role
- Delete an organization. delete:organizations
+ Add role to an organization user. create:organization_user_roles
- :param org_code: The identifier for the organization. (required)
+ :param org_code: The organization's code. (required)
:type org_code: str
+ :param user_id: The user's id. (required)
+ :type user_id: str
+ :param create_organization_user_role_request: Role details. (required)
+ :type create_organization_user_role_request: CreateOrganizationUserRoleRequest
: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
@@ -2080,8 +2093,10 @@ def delete_organization_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._delete_organization_serialize(
+ _param = self._create_organization_user_role_serialize(
org_code=org_code,
+ user_id=user_id,
+ create_organization_user_role_request=create_organization_user_role_request,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -2090,10 +2105,8 @@ def delete_organization_without_preload_content(
_response_types_map: Dict[str, Optional[str]] = {
'200': "SuccessResponse",
- '400': "ErrorResponse",
- '403': "ErrorResponse",
- '404': "NotFoundResponse",
- '429': "ErrorResponse",
+ '403': None,
+ '429': None,
}
response_data = self.api_client.call_api(
*_param,
@@ -2102,9 +2115,11 @@ def delete_organization_without_preload_content(
return response_data.response
- def _delete_organization_serialize(
+ def _create_organization_user_role_serialize(
self,
org_code,
+ user_id,
+ create_organization_user_role_request,
_request_auth,
_content_type,
_headers,
@@ -2128,20 +2143,38 @@ def _delete_organization_serialize(
# process the path parameters
if org_code is not None:
_path_params['org_code'] = org_code
+ if user_id is not None:
+ _path_params['user_id'] = user_id
# process the query parameters
# process the header parameters
# process the form parameters
# process the body parameter
+ if create_organization_user_role_request is not None:
+ _body_params = create_organization_user_role_request
# set the HTTP header `Accept`
if 'Accept' not in _header_params:
_header_params['Accept'] = self.api_client.select_header_accept(
[
- 'application/json'
+ 'application/json',
+ 'application/json; charset=utf-8'
]
)
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
# authentication setting
_auth_settings: List[str] = [
@@ -2149,8 +2182,8 @@ def _delete_organization_serialize(
]
return self.api_client.param_serialize(
- method='DELETE',
- resource_path='/api/v1/organization/{org_code}',
+ method='POST',
+ resource_path='/api/v1/organizations/{org_code}/users/{user_id}/roles',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -2167,10 +2200,9 @@ def _delete_organization_serialize(
@validate_call
- def delete_organization_feature_flag_override(
+ def delete_organization(
self,
org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
- feature_flag_key: Annotated[StrictStr, Field(description="The identifier for the feature flag.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2184,14 +2216,12 @@ def delete_organization_feature_flag_override(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> SuccessResponse:
- """Delete Organization Feature Flag Override
+ """Delete Organization
- Delete organization feature flag override. delete:organization_feature_flags
+ Delete an organization. delete:organizations
:param org_code: The identifier for the organization. (required)
:type org_code: str
- :param feature_flag_key: The identifier for the feature flag. (required)
- :type feature_flag_key: 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
@@ -2214,9 +2244,8 @@ def delete_organization_feature_flag_override(
:return: Returns the result object.
""" # noqa: E501
- _param = self._delete_organization_feature_flag_override_serialize(
+ _param = self._delete_organization_serialize(
org_code=org_code,
- feature_flag_key=feature_flag_key,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -2226,8 +2255,9 @@ def delete_organization_feature_flag_override(
_response_types_map: Dict[str, Optional[str]] = {
'200': "SuccessResponse",
'400': "ErrorResponse",
- '403': None,
- '429': None,
+ '403': "ErrorResponse",
+ '404': "NotFoundResponse",
+ '429': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
@@ -2241,10 +2271,9 @@ def delete_organization_feature_flag_override(
@validate_call
- def delete_organization_feature_flag_override_with_http_info(
+ def delete_organization_with_http_info(
self,
org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
- feature_flag_key: Annotated[StrictStr, Field(description="The identifier for the feature flag.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2258,14 +2287,12 @@ def delete_organization_feature_flag_override_with_http_info(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> ApiResponse[SuccessResponse]:
- """Delete Organization Feature Flag Override
+ """Delete Organization
- Delete organization feature flag override. delete:organization_feature_flags
+ Delete an organization. delete:organizations
:param org_code: The identifier for the organization. (required)
:type org_code: str
- :param feature_flag_key: The identifier for the feature flag. (required)
- :type feature_flag_key: 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
@@ -2288,9 +2315,8 @@ def delete_organization_feature_flag_override_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._delete_organization_feature_flag_override_serialize(
+ _param = self._delete_organization_serialize(
org_code=org_code,
- feature_flag_key=feature_flag_key,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -2300,8 +2326,9 @@ def delete_organization_feature_flag_override_with_http_info(
_response_types_map: Dict[str, Optional[str]] = {
'200': "SuccessResponse",
'400': "ErrorResponse",
- '403': None,
- '429': None,
+ '403': "ErrorResponse",
+ '404': "NotFoundResponse",
+ '429': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
@@ -2315,10 +2342,9 @@ def delete_organization_feature_flag_override_with_http_info(
@validate_call
- def delete_organization_feature_flag_override_without_preload_content(
+ def delete_organization_without_preload_content(
self,
org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
- feature_flag_key: Annotated[StrictStr, Field(description="The identifier for the feature flag.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2332,14 +2358,12 @@ def delete_organization_feature_flag_override_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """Delete Organization Feature Flag Override
+ """Delete Organization
- Delete organization feature flag override. delete:organization_feature_flags
+ Delete an organization. delete:organizations
:param org_code: The identifier for the organization. (required)
:type org_code: str
- :param feature_flag_key: The identifier for the feature flag. (required)
- :type feature_flag_key: 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
@@ -2362,9 +2386,8 @@ def delete_organization_feature_flag_override_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._delete_organization_feature_flag_override_serialize(
+ _param = self._delete_organization_serialize(
org_code=org_code,
- feature_flag_key=feature_flag_key,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -2374,8 +2397,9 @@ def delete_organization_feature_flag_override_without_preload_content(
_response_types_map: Dict[str, Optional[str]] = {
'200': "SuccessResponse",
'400': "ErrorResponse",
- '403': None,
- '429': None,
+ '403': "ErrorResponse",
+ '404': "NotFoundResponse",
+ '429': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
@@ -2384,10 +2408,9 @@ def delete_organization_feature_flag_override_without_preload_content(
return response_data.response
- def _delete_organization_feature_flag_override_serialize(
+ def _delete_organization_serialize(
self,
org_code,
- feature_flag_key,
_request_auth,
_content_type,
_headers,
@@ -2411,8 +2434,6 @@ def _delete_organization_feature_flag_override_serialize(
# process the path parameters
if org_code is not None:
_path_params['org_code'] = org_code
- if feature_flag_key is not None:
- _path_params['feature_flag_key'] = feature_flag_key
# process the query parameters
# process the header parameters
# process the form parameters
@@ -2423,8 +2444,7 @@ def _delete_organization_feature_flag_override_serialize(
if 'Accept' not in _header_params:
_header_params['Accept'] = self.api_client.select_header_accept(
[
- 'application/json',
- 'application/json; charset=utf-8'
+ 'application/json'
]
)
@@ -2436,7 +2456,7 @@ def _delete_organization_feature_flag_override_serialize(
return self.api_client.param_serialize(
method='DELETE',
- resource_path='/api/v1/organizations/{org_code}/feature_flags/{feature_flag_key}',
+ resource_path='/api/v1/organization/{org_code}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -2453,9 +2473,10 @@ def _delete_organization_feature_flag_override_serialize(
@validate_call
- def delete_organization_feature_flag_overrides(
+ def delete_organization_feature_flag_override(
self,
org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
+ feature_flag_key: Annotated[StrictStr, Field(description="The identifier for the feature flag.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2469,12 +2490,14 @@ def delete_organization_feature_flag_overrides(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> SuccessResponse:
- """Delete Organization Feature Flag Overrides
+ """Delete Organization Feature Flag Override
- Delete all organization feature flag overrides. delete:organization_feature_flags
+ Delete organization feature flag override. delete:organization_feature_flags
:param org_code: The identifier for the organization. (required)
:type org_code: str
+ :param feature_flag_key: The identifier for the feature flag. (required)
+ :type feature_flag_key: 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
@@ -2497,8 +2520,9 @@ def delete_organization_feature_flag_overrides(
:return: Returns the result object.
""" # noqa: E501
- _param = self._delete_organization_feature_flag_overrides_serialize(
+ _param = self._delete_organization_feature_flag_override_serialize(
org_code=org_code,
+ feature_flag_key=feature_flag_key,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -2523,9 +2547,10 @@ def delete_organization_feature_flag_overrides(
@validate_call
- def delete_organization_feature_flag_overrides_with_http_info(
+ def delete_organization_feature_flag_override_with_http_info(
self,
org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
+ feature_flag_key: Annotated[StrictStr, Field(description="The identifier for the feature flag.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2539,12 +2564,14 @@ def delete_organization_feature_flag_overrides_with_http_info(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> ApiResponse[SuccessResponse]:
- """Delete Organization Feature Flag Overrides
+ """Delete Organization Feature Flag Override
- Delete all organization feature flag overrides. delete:organization_feature_flags
+ Delete organization feature flag override. delete:organization_feature_flags
:param org_code: The identifier for the organization. (required)
:type org_code: str
+ :param feature_flag_key: The identifier for the feature flag. (required)
+ :type feature_flag_key: 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
@@ -2567,8 +2594,9 @@ def delete_organization_feature_flag_overrides_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._delete_organization_feature_flag_overrides_serialize(
+ _param = self._delete_organization_feature_flag_override_serialize(
org_code=org_code,
+ feature_flag_key=feature_flag_key,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -2593,9 +2621,10 @@ def delete_organization_feature_flag_overrides_with_http_info(
@validate_call
- def delete_organization_feature_flag_overrides_without_preload_content(
+ def delete_organization_feature_flag_override_without_preload_content(
self,
org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
+ feature_flag_key: Annotated[StrictStr, Field(description="The identifier for the feature flag.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2609,12 +2638,14 @@ def delete_organization_feature_flag_overrides_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """Delete Organization Feature Flag Overrides
+ """Delete Organization Feature Flag Override
- Delete all organization feature flag overrides. delete:organization_feature_flags
+ Delete organization feature flag override. delete:organization_feature_flags
:param org_code: The identifier for the organization. (required)
:type org_code: str
+ :param feature_flag_key: The identifier for the feature flag. (required)
+ :type feature_flag_key: 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
@@ -2637,8 +2668,9 @@ def delete_organization_feature_flag_overrides_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._delete_organization_feature_flag_overrides_serialize(
+ _param = self._delete_organization_feature_flag_override_serialize(
org_code=org_code,
+ feature_flag_key=feature_flag_key,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -2658,9 +2690,10 @@ def delete_organization_feature_flag_overrides_without_preload_content(
return response_data.response
- def _delete_organization_feature_flag_overrides_serialize(
+ def _delete_organization_feature_flag_override_serialize(
self,
org_code,
+ feature_flag_key,
_request_auth,
_content_type,
_headers,
@@ -2684,6 +2717,8 @@ def _delete_organization_feature_flag_overrides_serialize(
# process the path parameters
if org_code is not None:
_path_params['org_code'] = org_code
+ if feature_flag_key is not None:
+ _path_params['feature_flag_key'] = feature_flag_key
# process the query parameters
# process the header parameters
# process the form parameters
@@ -2707,7 +2742,7 @@ def _delete_organization_feature_flag_overrides_serialize(
return self.api_client.param_serialize(
method='DELETE',
- resource_path='/api/v1/organizations/{org_code}/feature_flags',
+ resource_path='/api/v1/organizations/{org_code}/feature_flags/{feature_flag_key}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -2724,9 +2759,9 @@ def _delete_organization_feature_flag_overrides_serialize(
@validate_call
- def delete_organization_handle(
+ def delete_organization_feature_flag_overrides(
self,
- org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2740,11 +2775,11 @@ def delete_organization_handle(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> SuccessResponse:
- """Delete organization handle
+ """Delete Organization Feature Flag Overrides
- Delete organization handle delete:organization_handles
+ Delete all organization feature flag overrides. delete:organization_feature_flags
- :param org_code: The organization's code. (required)
+ :param org_code: The identifier for the organization. (required)
:type org_code: str
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
@@ -2768,7 +2803,7 @@ def delete_organization_handle(
:return: Returns the result object.
""" # noqa: E501
- _param = self._delete_organization_handle_serialize(
+ _param = self._delete_organization_feature_flag_overrides_serialize(
org_code=org_code,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -2794,9 +2829,9 @@ def delete_organization_handle(
@validate_call
- def delete_organization_handle_with_http_info(
+ def delete_organization_feature_flag_overrides_with_http_info(
self,
- org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2810,11 +2845,11 @@ def delete_organization_handle_with_http_info(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> ApiResponse[SuccessResponse]:
- """Delete organization handle
+ """Delete Organization Feature Flag Overrides
- Delete organization handle delete:organization_handles
+ Delete all organization feature flag overrides. delete:organization_feature_flags
- :param org_code: The organization's code. (required)
+ :param org_code: The identifier for the organization. (required)
:type org_code: str
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
@@ -2838,7 +2873,7 @@ def delete_organization_handle_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._delete_organization_handle_serialize(
+ _param = self._delete_organization_feature_flag_overrides_serialize(
org_code=org_code,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -2864,9 +2899,9 @@ def delete_organization_handle_with_http_info(
@validate_call
- def delete_organization_handle_without_preload_content(
+ def delete_organization_feature_flag_overrides_without_preload_content(
self,
- org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2880,11 +2915,11 @@ def delete_organization_handle_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """Delete organization handle
+ """Delete Organization Feature Flag Overrides
- Delete organization handle delete:organization_handles
+ Delete all organization feature flag overrides. delete:organization_feature_flags
- :param org_code: The organization's code. (required)
+ :param org_code: The identifier for the organization. (required)
:type org_code: str
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
@@ -2908,7 +2943,7 @@ def delete_organization_handle_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._delete_organization_handle_serialize(
+ _param = self._delete_organization_feature_flag_overrides_serialize(
org_code=org_code,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -2929,7 +2964,7 @@ def delete_organization_handle_without_preload_content(
return response_data.response
- def _delete_organization_handle_serialize(
+ def _delete_organization_feature_flag_overrides_serialize(
self,
org_code,
_request_auth,
@@ -2978,7 +3013,7 @@ def _delete_organization_handle_serialize(
return self.api_client.param_serialize(
method='DELETE',
- resource_path='/api/v1/organization/{org_code}/handle',
+ resource_path='/api/v1/organizations/{org_code}/feature_flags',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -2995,10 +3030,9 @@ def _delete_organization_handle_serialize(
@validate_call
- def delete_organization_logo(
+ def delete_organization_handle(
self,
org_code: Annotated[StrictStr, Field(description="The organization's code.")],
- type: Annotated[StrictStr, Field(description="The type of logo to delete.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -3012,14 +3046,12 @@ def delete_organization_logo(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> SuccessResponse:
- """Delete organization logo
+ """Delete organization handle
- Delete organization logo update:organizations
+ Delete organization handle delete:organization_handles
:param org_code: The organization's code. (required)
:type org_code: str
- :param type: The type of logo to delete. (required)
- :type type: 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
@@ -3042,9 +3074,8 @@ def delete_organization_logo(
:return: Returns the result object.
""" # noqa: E501
- _param = self._delete_organization_logo_serialize(
+ _param = self._delete_organization_handle_serialize(
org_code=org_code,
- type=type,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -3053,10 +3084,9 @@ def delete_organization_logo(
_response_types_map: Dict[str, Optional[str]] = {
'200': "SuccessResponse",
- '204': None,
'400': "ErrorResponse",
- '403': "ErrorResponse",
- '429': "ErrorResponse",
+ '403': None,
+ '429': None,
}
response_data = self.api_client.call_api(
*_param,
@@ -3070,10 +3100,9 @@ def delete_organization_logo(
@validate_call
- def delete_organization_logo_with_http_info(
+ def delete_organization_handle_with_http_info(
self,
org_code: Annotated[StrictStr, Field(description="The organization's code.")],
- type: Annotated[StrictStr, Field(description="The type of logo to delete.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -3087,14 +3116,12 @@ def delete_organization_logo_with_http_info(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> ApiResponse[SuccessResponse]:
- """Delete organization logo
+ """Delete organization handle
- Delete organization logo update:organizations
+ Delete organization handle delete:organization_handles
:param org_code: The organization's code. (required)
:type org_code: str
- :param type: The type of logo to delete. (required)
- :type type: 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
@@ -3117,9 +3144,8 @@ def delete_organization_logo_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._delete_organization_logo_serialize(
+ _param = self._delete_organization_handle_serialize(
org_code=org_code,
- type=type,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -3128,10 +3154,9 @@ def delete_organization_logo_with_http_info(
_response_types_map: Dict[str, Optional[str]] = {
'200': "SuccessResponse",
- '204': None,
'400': "ErrorResponse",
- '403': "ErrorResponse",
- '429': "ErrorResponse",
+ '403': None,
+ '429': None,
}
response_data = self.api_client.call_api(
*_param,
@@ -3145,10 +3170,9 @@ def delete_organization_logo_with_http_info(
@validate_call
- def delete_organization_logo_without_preload_content(
+ def delete_organization_handle_without_preload_content(
self,
org_code: Annotated[StrictStr, Field(description="The organization's code.")],
- type: Annotated[StrictStr, Field(description="The type of logo to delete.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -3162,14 +3186,12 @@ def delete_organization_logo_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """Delete organization logo
+ """Delete organization handle
- Delete organization logo update:organizations
+ Delete organization handle delete:organization_handles
:param org_code: The organization's code. (required)
:type org_code: str
- :param type: The type of logo to delete. (required)
- :type type: 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
@@ -3192,9 +3214,8 @@ def delete_organization_logo_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._delete_organization_logo_serialize(
+ _param = self._delete_organization_handle_serialize(
org_code=org_code,
- type=type,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -3203,10 +3224,9 @@ def delete_organization_logo_without_preload_content(
_response_types_map: Dict[str, Optional[str]] = {
'200': "SuccessResponse",
- '204': None,
'400': "ErrorResponse",
- '403': "ErrorResponse",
- '429': "ErrorResponse",
+ '403': None,
+ '429': None,
}
response_data = self.api_client.call_api(
*_param,
@@ -3215,10 +3235,9 @@ def delete_organization_logo_without_preload_content(
return response_data.response
- def _delete_organization_logo_serialize(
+ def _delete_organization_handle_serialize(
self,
org_code,
- type,
_request_auth,
_content_type,
_headers,
@@ -3242,8 +3261,6 @@ def _delete_organization_logo_serialize(
# process the path parameters
if org_code is not None:
_path_params['org_code'] = org_code
- if type is not None:
- _path_params['type'] = type
# process the query parameters
# process the header parameters
# process the form parameters
@@ -3254,7 +3271,8 @@ def _delete_organization_logo_serialize(
if 'Accept' not in _header_params:
_header_params['Accept'] = self.api_client.select_header_accept(
[
- 'application/json'
+ 'application/json',
+ 'application/json; charset=utf-8'
]
)
@@ -3266,7 +3284,7 @@ def _delete_organization_logo_serialize(
return self.api_client.param_serialize(
method='DELETE',
- resource_path='/api/v1/organizations/{org_code}/logos/{type}',
+ resource_path='/api/v1/organization/{org_code}/handle',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -3283,12 +3301,10 @@ def _delete_organization_logo_serialize(
@validate_call
- def delete_organization_user_api_scope(
+ def delete_organization_invite(
self,
- org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
- user_id: Annotated[StrictStr, Field(description="User ID")],
- api_id: Annotated[StrictStr, Field(description="API ID")],
- scope_id: Annotated[StrictStr, Field(description="Scope ID")],
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ invite_code: Annotated[StrictStr, Field(description="The invitation's code.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -3301,19 +3317,15 @@ def delete_organization_user_api_scope(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> None:
- """Delete scope from organization user API
+ ) -> SuccessResponse:
+ """Delete organization invite
- Delete a scope from an organization user api you previously created. delete:organization_user_api_scopes
+ Revoke (delete) an invitation. This will mark the invitation as revoked and prevent it from being accepted. delete:organization_invites
- :param org_code: The identifier for the organization. (required)
+ :param org_code: The organization's code. (required)
:type org_code: str
- :param user_id: User ID (required)
- :type user_id: str
- :param api_id: API ID (required)
- :type api_id: str
- :param scope_id: Scope ID (required)
- :type scope_id: str
+ :param invite_code: The invitation's code. (required)
+ :type invite_code: 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
@@ -3336,11 +3348,9 @@ def delete_organization_user_api_scope(
:return: Returns the result object.
""" # noqa: E501
- _param = self._delete_organization_user_api_scope_serialize(
+ _param = self._delete_organization_invite_serialize(
org_code=org_code,
- user_id=user_id,
- api_id=api_id,
- scope_id=scope_id,
+ invite_code=invite_code,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -3348,9 +3358,10 @@ def delete_organization_user_api_scope(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': None,
+ '200': "SuccessResponse",
'400': "ErrorResponse",
'403': "ErrorResponse",
+ '404': "NotFoundResponse",
'429': "ErrorResponse",
}
response_data = self.api_client.call_api(
@@ -3365,12 +3376,10 @@ def delete_organization_user_api_scope(
@validate_call
- def delete_organization_user_api_scope_with_http_info(
+ def delete_organization_invite_with_http_info(
self,
- org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
- user_id: Annotated[StrictStr, Field(description="User ID")],
- api_id: Annotated[StrictStr, Field(description="API ID")],
- scope_id: Annotated[StrictStr, Field(description="Scope ID")],
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ invite_code: Annotated[StrictStr, Field(description="The invitation's code.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -3383,19 +3392,15 @@ def delete_organization_user_api_scope_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[None]:
- """Delete scope from organization user API
+ ) -> ApiResponse[SuccessResponse]:
+ """Delete organization invite
- Delete a scope from an organization user api you previously created. delete:organization_user_api_scopes
+ Revoke (delete) an invitation. This will mark the invitation as revoked and prevent it from being accepted. delete:organization_invites
- :param org_code: The identifier for the organization. (required)
+ :param org_code: The organization's code. (required)
:type org_code: str
- :param user_id: User ID (required)
- :type user_id: str
- :param api_id: API ID (required)
- :type api_id: str
- :param scope_id: Scope ID (required)
- :type scope_id: str
+ :param invite_code: The invitation's code. (required)
+ :type invite_code: 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
@@ -3418,11 +3423,9 @@ def delete_organization_user_api_scope_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._delete_organization_user_api_scope_serialize(
+ _param = self._delete_organization_invite_serialize(
org_code=org_code,
- user_id=user_id,
- api_id=api_id,
- scope_id=scope_id,
+ invite_code=invite_code,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -3430,9 +3433,10 @@ def delete_organization_user_api_scope_with_http_info(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': None,
+ '200': "SuccessResponse",
'400': "ErrorResponse",
'403': "ErrorResponse",
+ '404': "NotFoundResponse",
'429': "ErrorResponse",
}
response_data = self.api_client.call_api(
@@ -3447,12 +3451,10 @@ def delete_organization_user_api_scope_with_http_info(
@validate_call
- def delete_organization_user_api_scope_without_preload_content(
+ def delete_organization_invite_without_preload_content(
self,
- org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
- user_id: Annotated[StrictStr, Field(description="User ID")],
- api_id: Annotated[StrictStr, Field(description="API ID")],
- scope_id: Annotated[StrictStr, Field(description="Scope ID")],
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ invite_code: Annotated[StrictStr, Field(description="The invitation's code.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -3466,18 +3468,14 @@ def delete_organization_user_api_scope_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """Delete scope from organization user API
+ """Delete organization invite
- Delete a scope from an organization user api you previously created. delete:organization_user_api_scopes
+ Revoke (delete) an invitation. This will mark the invitation as revoked and prevent it from being accepted. delete:organization_invites
- :param org_code: The identifier for the organization. (required)
+ :param org_code: The organization's code. (required)
:type org_code: str
- :param user_id: User ID (required)
- :type user_id: str
- :param api_id: API ID (required)
- :type api_id: str
- :param scope_id: Scope ID (required)
- :type scope_id: str
+ :param invite_code: The invitation's code. (required)
+ :type invite_code: 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
@@ -3500,11 +3498,9 @@ def delete_organization_user_api_scope_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._delete_organization_user_api_scope_serialize(
+ _param = self._delete_organization_invite_serialize(
org_code=org_code,
- user_id=user_id,
- api_id=api_id,
- scope_id=scope_id,
+ invite_code=invite_code,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -3512,9 +3508,10 @@ def delete_organization_user_api_scope_without_preload_content(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': None,
+ '200': "SuccessResponse",
'400': "ErrorResponse",
'403': "ErrorResponse",
+ '404': "NotFoundResponse",
'429': "ErrorResponse",
}
response_data = self.api_client.call_api(
@@ -3524,12 +3521,10 @@ def delete_organization_user_api_scope_without_preload_content(
return response_data.response
- def _delete_organization_user_api_scope_serialize(
+ def _delete_organization_invite_serialize(
self,
org_code,
- user_id,
- api_id,
- scope_id,
+ invite_code,
_request_auth,
_content_type,
_headers,
@@ -3553,12 +3548,8 @@ def _delete_organization_user_api_scope_serialize(
# process the path parameters
if org_code is not None:
_path_params['org_code'] = org_code
- if user_id is not None:
- _path_params['user_id'] = user_id
- if api_id is not None:
- _path_params['api_id'] = api_id
- if scope_id is not None:
- _path_params['scope_id'] = scope_id
+ if invite_code is not None:
+ _path_params['invite_code'] = invite_code
# process the query parameters
# process the header parameters
# process the form parameters
@@ -3581,7 +3572,7 @@ def _delete_organization_user_api_scope_serialize(
return self.api_client.param_serialize(
method='DELETE',
- resource_path='/api/v1/organizations/{org_code}/users/{user_id}/apis/{api_id}/scopes/{scope_id}',
+ resource_path='/api/v1/organization/{org_code}/invites/{invite_code}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -3598,11 +3589,10 @@ def _delete_organization_user_api_scope_serialize(
@validate_call
- def delete_organization_user_permission(
+ def delete_organization_logo(
self,
org_code: Annotated[StrictStr, Field(description="The organization's code.")],
- user_id: Annotated[StrictStr, Field(description="The user's id.")],
- permission_id: Annotated[StrictStr, Field(description="The permission id.")],
+ type: Annotated[StrictStr, Field(description="The type of logo to delete.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -3616,16 +3606,14 @@ def delete_organization_user_permission(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> SuccessResponse:
- """Delete Organization User Permission
+ """Delete organization logo
- Delete permission for an organization user. delete:organization_user_permissions
+ Delete organization logo update:organizations
:param org_code: The organization's code. (required)
:type org_code: str
- :param user_id: The user's id. (required)
- :type user_id: str
- :param permission_id: The permission id. (required)
- :type permission_id: str
+ :param type: The type of logo to delete. (required)
+ :type type: 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
@@ -3648,10 +3636,9 @@ def delete_organization_user_permission(
:return: Returns the result object.
""" # noqa: E501
- _param = self._delete_organization_user_permission_serialize(
+ _param = self._delete_organization_logo_serialize(
org_code=org_code,
- user_id=user_id,
- permission_id=permission_id,
+ type=type,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -3660,9 +3647,10 @@ def delete_organization_user_permission(
_response_types_map: Dict[str, Optional[str]] = {
'200': "SuccessResponse",
+ '204': None,
'400': "ErrorResponse",
- '403': None,
- '429': None,
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
@@ -3676,11 +3664,10 @@ def delete_organization_user_permission(
@validate_call
- def delete_organization_user_permission_with_http_info(
+ def delete_organization_logo_with_http_info(
self,
org_code: Annotated[StrictStr, Field(description="The organization's code.")],
- user_id: Annotated[StrictStr, Field(description="The user's id.")],
- permission_id: Annotated[StrictStr, Field(description="The permission id.")],
+ type: Annotated[StrictStr, Field(description="The type of logo to delete.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -3694,16 +3681,14 @@ def delete_organization_user_permission_with_http_info(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> ApiResponse[SuccessResponse]:
- """Delete Organization User Permission
+ """Delete organization logo
- Delete permission for an organization user. delete:organization_user_permissions
+ Delete organization logo update:organizations
:param org_code: The organization's code. (required)
:type org_code: str
- :param user_id: The user's id. (required)
- :type user_id: str
- :param permission_id: The permission id. (required)
- :type permission_id: str
+ :param type: The type of logo to delete. (required)
+ :type type: 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
@@ -3726,10 +3711,9 @@ def delete_organization_user_permission_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._delete_organization_user_permission_serialize(
+ _param = self._delete_organization_logo_serialize(
org_code=org_code,
- user_id=user_id,
- permission_id=permission_id,
+ type=type,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -3738,9 +3722,10 @@ def delete_organization_user_permission_with_http_info(
_response_types_map: Dict[str, Optional[str]] = {
'200': "SuccessResponse",
+ '204': None,
'400': "ErrorResponse",
- '403': None,
- '429': None,
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
@@ -3754,11 +3739,10 @@ def delete_organization_user_permission_with_http_info(
@validate_call
- def delete_organization_user_permission_without_preload_content(
+ def delete_organization_logo_without_preload_content(
self,
org_code: Annotated[StrictStr, Field(description="The organization's code.")],
- user_id: Annotated[StrictStr, Field(description="The user's id.")],
- permission_id: Annotated[StrictStr, Field(description="The permission id.")],
+ type: Annotated[StrictStr, Field(description="The type of logo to delete.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -3772,16 +3756,14 @@ def delete_organization_user_permission_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """Delete Organization User Permission
+ """Delete organization logo
- Delete permission for an organization user. delete:organization_user_permissions
+ Delete organization logo update:organizations
:param org_code: The organization's code. (required)
:type org_code: str
- :param user_id: The user's id. (required)
- :type user_id: str
- :param permission_id: The permission id. (required)
- :type permission_id: str
+ :param type: The type of logo to delete. (required)
+ :type type: 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
@@ -3804,10 +3786,9 @@ def delete_organization_user_permission_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._delete_organization_user_permission_serialize(
+ _param = self._delete_organization_logo_serialize(
org_code=org_code,
- user_id=user_id,
- permission_id=permission_id,
+ type=type,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -3816,9 +3797,10 @@ def delete_organization_user_permission_without_preload_content(
_response_types_map: Dict[str, Optional[str]] = {
'200': "SuccessResponse",
+ '204': None,
'400': "ErrorResponse",
- '403': None,
- '429': None,
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
@@ -3827,11 +3809,10 @@ def delete_organization_user_permission_without_preload_content(
return response_data.response
- def _delete_organization_user_permission_serialize(
+ def _delete_organization_logo_serialize(
self,
org_code,
- user_id,
- permission_id,
+ type,
_request_auth,
_content_type,
_headers,
@@ -3855,10 +3836,8 @@ def _delete_organization_user_permission_serialize(
# process the path parameters
if org_code is not None:
_path_params['org_code'] = org_code
- if user_id is not None:
- _path_params['user_id'] = user_id
- if permission_id is not None:
- _path_params['permission_id'] = permission_id
+ if type is not None:
+ _path_params['type'] = type
# process the query parameters
# process the header parameters
# process the form parameters
@@ -3869,8 +3848,7 @@ def _delete_organization_user_permission_serialize(
if 'Accept' not in _header_params:
_header_params['Accept'] = self.api_client.select_header_accept(
[
- 'application/json',
- 'application/json; charset=utf-8'
+ 'application/json'
]
)
@@ -3882,7 +3860,7 @@ def _delete_organization_user_permission_serialize(
return self.api_client.param_serialize(
method='DELETE',
- resource_path='/api/v1/organizations/{org_code}/users/{user_id}/permissions/{permission_id}',
+ resource_path='/api/v1/organizations/{org_code}/logos/{type}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -3899,11 +3877,12 @@ def _delete_organization_user_permission_serialize(
@validate_call
- def delete_organization_user_role(
+ def delete_organization_user_api_scope(
self,
- org_code: Annotated[StrictStr, Field(description="The organization's code.")],
- user_id: Annotated[StrictStr, Field(description="The user's id.")],
- role_id: Annotated[StrictStr, Field(description="The role id.")],
+ org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
+ user_id: Annotated[StrictStr, Field(description="User ID")],
+ api_id: Annotated[StrictStr, Field(description="API ID")],
+ scope_id: Annotated[StrictStr, Field(description="Scope ID")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -3916,17 +3895,19 @@ def delete_organization_user_role(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> SuccessResponse:
- """Delete Organization User Role
+ ) -> None:
+ """Delete scope from organization user API
- Delete role for an organization user. delete:organization_user_roles
+ Delete a scope from an organization user api you previously created. delete:organization_user_api_scopes
- :param org_code: The organization's code. (required)
+ :param org_code: The identifier for the organization. (required)
:type org_code: str
- :param user_id: The user's id. (required)
+ :param user_id: User ID (required)
:type user_id: str
- :param role_id: The role id. (required)
- :type role_id: str
+ :param api_id: API ID (required)
+ :type api_id: str
+ :param scope_id: Scope ID (required)
+ :type scope_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
@@ -3949,10 +3930,11 @@ def delete_organization_user_role(
:return: Returns the result object.
""" # noqa: E501
- _param = self._delete_organization_user_role_serialize(
+ _param = self._delete_organization_user_api_scope_serialize(
org_code=org_code,
user_id=user_id,
- role_id=role_id,
+ api_id=api_id,
+ scope_id=scope_id,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -3960,10 +3942,10 @@ def delete_organization_user_role(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "SuccessResponse",
+ '200': None,
'400': "ErrorResponse",
- '403': None,
- '429': None,
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
@@ -3977,11 +3959,12 @@ def delete_organization_user_role(
@validate_call
- def delete_organization_user_role_with_http_info(
+ def delete_organization_user_api_scope_with_http_info(
self,
- org_code: Annotated[StrictStr, Field(description="The organization's code.")],
- user_id: Annotated[StrictStr, Field(description="The user's id.")],
- role_id: Annotated[StrictStr, Field(description="The role id.")],
+ org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
+ user_id: Annotated[StrictStr, Field(description="User ID")],
+ api_id: Annotated[StrictStr, Field(description="API ID")],
+ scope_id: Annotated[StrictStr, Field(description="Scope ID")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -3994,17 +3977,19 @@ def delete_organization_user_role_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[SuccessResponse]:
- """Delete Organization User Role
+ ) -> ApiResponse[None]:
+ """Delete scope from organization user API
- Delete role for an organization user. delete:organization_user_roles
+ Delete a scope from an organization user api you previously created. delete:organization_user_api_scopes
- :param org_code: The organization's code. (required)
+ :param org_code: The identifier for the organization. (required)
:type org_code: str
- :param user_id: The user's id. (required)
+ :param user_id: User ID (required)
:type user_id: str
- :param role_id: The role id. (required)
- :type role_id: str
+ :param api_id: API ID (required)
+ :type api_id: str
+ :param scope_id: Scope ID (required)
+ :type scope_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
@@ -4027,10 +4012,11 @@ def delete_organization_user_role_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._delete_organization_user_role_serialize(
+ _param = self._delete_organization_user_api_scope_serialize(
org_code=org_code,
user_id=user_id,
- role_id=role_id,
+ api_id=api_id,
+ scope_id=scope_id,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -4038,10 +4024,10 @@ def delete_organization_user_role_with_http_info(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "SuccessResponse",
+ '200': None,
'400': "ErrorResponse",
- '403': None,
- '429': None,
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
@@ -4055,11 +4041,12 @@ def delete_organization_user_role_with_http_info(
@validate_call
- def delete_organization_user_role_without_preload_content(
+ def delete_organization_user_api_scope_without_preload_content(
self,
- org_code: Annotated[StrictStr, Field(description="The organization's code.")],
- user_id: Annotated[StrictStr, Field(description="The user's id.")],
- role_id: Annotated[StrictStr, Field(description="The role id.")],
+ org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
+ user_id: Annotated[StrictStr, Field(description="User ID")],
+ api_id: Annotated[StrictStr, Field(description="API ID")],
+ scope_id: Annotated[StrictStr, Field(description="Scope ID")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -4073,16 +4060,18 @@ def delete_organization_user_role_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """Delete Organization User Role
+ """Delete scope from organization user API
- Delete role for an organization user. delete:organization_user_roles
+ Delete a scope from an organization user api you previously created. delete:organization_user_api_scopes
- :param org_code: The organization's code. (required)
+ :param org_code: The identifier for the organization. (required)
:type org_code: str
- :param user_id: The user's id. (required)
+ :param user_id: User ID (required)
:type user_id: str
- :param role_id: The role id. (required)
- :type role_id: str
+ :param api_id: API ID (required)
+ :type api_id: str
+ :param scope_id: Scope ID (required)
+ :type scope_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
@@ -4105,10 +4094,11 @@ def delete_organization_user_role_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._delete_organization_user_role_serialize(
+ _param = self._delete_organization_user_api_scope_serialize(
org_code=org_code,
user_id=user_id,
- role_id=role_id,
+ api_id=api_id,
+ scope_id=scope_id,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -4116,10 +4106,10 @@ def delete_organization_user_role_without_preload_content(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "SuccessResponse",
+ '200': None,
'400': "ErrorResponse",
- '403': None,
- '429': None,
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
@@ -4128,11 +4118,12 @@ def delete_organization_user_role_without_preload_content(
return response_data.response
- def _delete_organization_user_role_serialize(
+ def _delete_organization_user_api_scope_serialize(
self,
org_code,
user_id,
- role_id,
+ api_id,
+ scope_id,
_request_auth,
_content_type,
_headers,
@@ -4158,8 +4149,10 @@ def _delete_organization_user_role_serialize(
_path_params['org_code'] = org_code
if user_id is not None:
_path_params['user_id'] = user_id
- if role_id is not None:
- _path_params['role_id'] = role_id
+ if api_id is not None:
+ _path_params['api_id'] = api_id
+ if scope_id is not None:
+ _path_params['scope_id'] = scope_id
# process the query parameters
# process the header parameters
# process the form parameters
@@ -4170,8 +4163,7 @@ def _delete_organization_user_role_serialize(
if 'Accept' not in _header_params:
_header_params['Accept'] = self.api_client.select_header_accept(
[
- 'application/json',
- 'application/json; charset=utf-8'
+ 'application/json'
]
)
@@ -4183,7 +4175,7 @@ def _delete_organization_user_role_serialize(
return self.api_client.param_serialize(
method='DELETE',
- resource_path='/api/v1/organizations/{org_code}/users/{user_id}/roles/{role_id}',
+ resource_path='/api/v1/organizations/{org_code}/users/{user_id}/apis/{api_id}/scopes/{scope_id}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -4200,10 +4192,11 @@ def _delete_organization_user_role_serialize(
@validate_call
- def enable_org_connection(
+ def delete_organization_user_permission(
self,
- organization_code: Annotated[StrictStr, Field(description="The unique code for the organization.")],
- connection_id: Annotated[StrictStr, Field(description="The identifier for the connection.")],
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ user_id: Annotated[StrictStr, Field(description="The user's id.")],
+ permission_id: Annotated[StrictStr, Field(description="The permission id.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -4216,15 +4209,17 @@ def enable_org_connection(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> None:
- """Enable connection
+ ) -> SuccessResponse:
+ """Delete Organization User Permission
- Enable an auth connection for an organization. create:organization_connections
+ Delete permission for an organization user. delete:organization_user_permissions
- :param organization_code: The unique code for the organization. (required)
- :type organization_code: str
- :param connection_id: The identifier for the connection. (required)
- :type connection_id: str
+ :param org_code: The organization's code. (required)
+ :type org_code: str
+ :param user_id: The user's id. (required)
+ :type user_id: str
+ :param permission_id: The permission id. (required)
+ :type permission_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
@@ -4247,9 +4242,10 @@ def enable_org_connection(
:return: Returns the result object.
""" # noqa: E501
- _param = self._enable_org_connection_serialize(
- organization_code=organization_code,
- connection_id=connection_id,
+ _param = self._delete_organization_user_permission_serialize(
+ org_code=org_code,
+ user_id=user_id,
+ permission_id=permission_id,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -4257,11 +4253,11 @@ def enable_org_connection(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': None,
+ '200': "SuccessResponse",
'400': "ErrorResponse",
- '403': "ErrorResponse",
- '429': "ErrorResponse",
- }
+ '403': None,
+ '429': None,
+ }
response_data = self.api_client.call_api(
*_param,
_request_timeout=_request_timeout
@@ -4274,10 +4270,11 @@ def enable_org_connection(
@validate_call
- def enable_org_connection_with_http_info(
+ def delete_organization_user_permission_with_http_info(
self,
- organization_code: Annotated[StrictStr, Field(description="The unique code for the organization.")],
- connection_id: Annotated[StrictStr, Field(description="The identifier for the connection.")],
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ user_id: Annotated[StrictStr, Field(description="The user's id.")],
+ permission_id: Annotated[StrictStr, Field(description="The permission id.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -4290,15 +4287,17 @@ def enable_org_connection_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[None]:
- """Enable connection
+ ) -> ApiResponse[SuccessResponse]:
+ """Delete Organization User Permission
- Enable an auth connection for an organization. create:organization_connections
+ Delete permission for an organization user. delete:organization_user_permissions
- :param organization_code: The unique code for the organization. (required)
- :type organization_code: str
- :param connection_id: The identifier for the connection. (required)
- :type connection_id: str
+ :param org_code: The organization's code. (required)
+ :type org_code: str
+ :param user_id: The user's id. (required)
+ :type user_id: str
+ :param permission_id: The permission id. (required)
+ :type permission_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
@@ -4321,9 +4320,10 @@ def enable_org_connection_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._enable_org_connection_serialize(
- organization_code=organization_code,
- connection_id=connection_id,
+ _param = self._delete_organization_user_permission_serialize(
+ org_code=org_code,
+ user_id=user_id,
+ permission_id=permission_id,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -4331,10 +4331,10 @@ def enable_org_connection_with_http_info(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': None,
+ '200': "SuccessResponse",
'400': "ErrorResponse",
- '403': "ErrorResponse",
- '429': "ErrorResponse",
+ '403': None,
+ '429': None,
}
response_data = self.api_client.call_api(
*_param,
@@ -4348,10 +4348,11 @@ def enable_org_connection_with_http_info(
@validate_call
- def enable_org_connection_without_preload_content(
+ def delete_organization_user_permission_without_preload_content(
self,
- organization_code: Annotated[StrictStr, Field(description="The unique code for the organization.")],
- connection_id: Annotated[StrictStr, Field(description="The identifier for the connection.")],
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ user_id: Annotated[StrictStr, Field(description="The user's id.")],
+ permission_id: Annotated[StrictStr, Field(description="The permission id.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -4365,14 +4366,16 @@ def enable_org_connection_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """Enable connection
+ """Delete Organization User Permission
- Enable an auth connection for an organization. create:organization_connections
+ Delete permission for an organization user. delete:organization_user_permissions
- :param organization_code: The unique code for the organization. (required)
- :type organization_code: str
- :param connection_id: The identifier for the connection. (required)
- :type connection_id: str
+ :param org_code: The organization's code. (required)
+ :type org_code: str
+ :param user_id: The user's id. (required)
+ :type user_id: str
+ :param permission_id: The permission id. (required)
+ :type permission_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
@@ -4395,9 +4398,10 @@ def enable_org_connection_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._enable_org_connection_serialize(
- organization_code=organization_code,
- connection_id=connection_id,
+ _param = self._delete_organization_user_permission_serialize(
+ org_code=org_code,
+ user_id=user_id,
+ permission_id=permission_id,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -4405,10 +4409,10 @@ def enable_org_connection_without_preload_content(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': None,
+ '200': "SuccessResponse",
'400': "ErrorResponse",
- '403': "ErrorResponse",
- '429': "ErrorResponse",
+ '403': None,
+ '429': None,
}
response_data = self.api_client.call_api(
*_param,
@@ -4417,10 +4421,11 @@ def enable_org_connection_without_preload_content(
return response_data.response
- def _enable_org_connection_serialize(
+ def _delete_organization_user_permission_serialize(
self,
- organization_code,
- connection_id,
+ org_code,
+ user_id,
+ permission_id,
_request_auth,
_content_type,
_headers,
@@ -4442,10 +4447,12 @@ def _enable_org_connection_serialize(
_body_params: Optional[bytes] = None
# process the path parameters
- if organization_code is not None:
- _path_params['organization_code'] = organization_code
- if connection_id is not None:
- _path_params['connection_id'] = connection_id
+ if org_code is not None:
+ _path_params['org_code'] = org_code
+ if user_id is not None:
+ _path_params['user_id'] = user_id
+ if permission_id is not None:
+ _path_params['permission_id'] = permission_id
# process the query parameters
# process the header parameters
# process the form parameters
@@ -4456,7 +4463,8 @@ def _enable_org_connection_serialize(
if 'Accept' not in _header_params:
_header_params['Accept'] = self.api_client.select_header_accept(
[
- 'application/json'
+ 'application/json',
+ 'application/json; charset=utf-8'
]
)
@@ -4467,8 +4475,8 @@ def _enable_org_connection_serialize(
]
return self.api_client.param_serialize(
- method='POST',
- resource_path='/api/v1/organizations/{organization_code}/connections/{connection_id}',
+ method='DELETE',
+ resource_path='/api/v1/organizations/{org_code}/users/{user_id}/permissions/{permission_id}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -4485,10 +4493,11 @@ def _enable_org_connection_serialize(
@validate_call
- def get_org_user_mfa(
+ def delete_organization_user_role(
self,
- org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
- user_id: Annotated[StrictStr, Field(description="The identifier for the user")],
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ user_id: Annotated[StrictStr, Field(description="The user's id.")],
+ role_id: Annotated[StrictStr, Field(description="The role id.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -4501,15 +4510,17 @@ def get_org_user_mfa(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> GetUserMfaResponse:
- """Get an organization user's MFA configuration
+ ) -> SuccessResponse:
+ """Delete Organization User Role
- Get an organization user’s MFA configuration. read:organization_user_mfa
+ Delete role for an organization user. delete:organization_user_roles
- :param org_code: The identifier for the organization. (required)
+ :param org_code: The organization's code. (required)
:type org_code: str
- :param user_id: The identifier for the user (required)
+ :param user_id: The user's id. (required)
:type user_id: str
+ :param role_id: The role id. (required)
+ :type role_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
@@ -4532,9 +4543,10 @@ def get_org_user_mfa(
:return: Returns the result object.
""" # noqa: E501
- _param = self._get_org_user_mfa_serialize(
+ _param = self._delete_organization_user_role_serialize(
org_code=org_code,
user_id=user_id,
+ role_id=role_id,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -4542,11 +4554,10 @@ def get_org_user_mfa(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "GetUserMfaResponse",
+ '200': "SuccessResponse",
'400': "ErrorResponse",
- '403': "ErrorResponse",
- '404': "NotFoundResponse",
- '429': "ErrorResponse",
+ '403': None,
+ '429': None,
}
response_data = self.api_client.call_api(
*_param,
@@ -4560,10 +4571,11 @@ def get_org_user_mfa(
@validate_call
- def get_org_user_mfa_with_http_info(
+ def delete_organization_user_role_with_http_info(
self,
- org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
- user_id: Annotated[StrictStr, Field(description="The identifier for the user")],
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ user_id: Annotated[StrictStr, Field(description="The user's id.")],
+ role_id: Annotated[StrictStr, Field(description="The role id.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -4576,15 +4588,17 @@ def get_org_user_mfa_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[GetUserMfaResponse]:
- """Get an organization user's MFA configuration
+ ) -> ApiResponse[SuccessResponse]:
+ """Delete Organization User Role
- Get an organization user’s MFA configuration. read:organization_user_mfa
+ Delete role for an organization user. delete:organization_user_roles
- :param org_code: The identifier for the organization. (required)
+ :param org_code: The organization's code. (required)
:type org_code: str
- :param user_id: The identifier for the user (required)
+ :param user_id: The user's id. (required)
:type user_id: str
+ :param role_id: The role id. (required)
+ :type role_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
@@ -4607,9 +4621,10 @@ def get_org_user_mfa_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._get_org_user_mfa_serialize(
+ _param = self._delete_organization_user_role_serialize(
org_code=org_code,
user_id=user_id,
+ role_id=role_id,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -4617,11 +4632,10 @@ def get_org_user_mfa_with_http_info(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "GetUserMfaResponse",
+ '200': "SuccessResponse",
'400': "ErrorResponse",
- '403': "ErrorResponse",
- '404': "NotFoundResponse",
- '429': "ErrorResponse",
+ '403': None,
+ '429': None,
}
response_data = self.api_client.call_api(
*_param,
@@ -4635,10 +4649,11 @@ def get_org_user_mfa_with_http_info(
@validate_call
- def get_org_user_mfa_without_preload_content(
+ def delete_organization_user_role_without_preload_content(
self,
- org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
- user_id: Annotated[StrictStr, Field(description="The identifier for the user")],
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ user_id: Annotated[StrictStr, Field(description="The user's id.")],
+ role_id: Annotated[StrictStr, Field(description="The role id.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -4652,14 +4667,16 @@ def get_org_user_mfa_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """Get an organization user's MFA configuration
+ """Delete Organization User Role
- Get an organization user’s MFA configuration. read:organization_user_mfa
+ Delete role for an organization user. delete:organization_user_roles
- :param org_code: The identifier for the organization. (required)
+ :param org_code: The organization's code. (required)
:type org_code: str
- :param user_id: The identifier for the user (required)
+ :param user_id: The user's id. (required)
:type user_id: str
+ :param role_id: The role id. (required)
+ :type role_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
@@ -4682,9 +4699,10 @@ def get_org_user_mfa_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._get_org_user_mfa_serialize(
+ _param = self._delete_organization_user_role_serialize(
org_code=org_code,
user_id=user_id,
+ role_id=role_id,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -4692,11 +4710,10 @@ def get_org_user_mfa_without_preload_content(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "GetUserMfaResponse",
+ '200': "SuccessResponse",
'400': "ErrorResponse",
- '403': "ErrorResponse",
- '404': "NotFoundResponse",
- '429': "ErrorResponse",
+ '403': None,
+ '429': None,
}
response_data = self.api_client.call_api(
*_param,
@@ -4705,10 +4722,11 @@ def get_org_user_mfa_without_preload_content(
return response_data.response
- def _get_org_user_mfa_serialize(
+ def _delete_organization_user_role_serialize(
self,
org_code,
user_id,
+ role_id,
_request_auth,
_content_type,
_headers,
@@ -4734,6 +4752,8 @@ def _get_org_user_mfa_serialize(
_path_params['org_code'] = org_code
if user_id is not None:
_path_params['user_id'] = user_id
+ if role_id is not None:
+ _path_params['role_id'] = role_id
# process the query parameters
# process the header parameters
# process the form parameters
@@ -4744,7 +4764,8 @@ def _get_org_user_mfa_serialize(
if 'Accept' not in _header_params:
_header_params['Accept'] = self.api_client.select_header_accept(
[
- 'application/json'
+ 'application/json',
+ 'application/json; charset=utf-8'
]
)
@@ -4755,8 +4776,8 @@ def _get_org_user_mfa_serialize(
]
return self.api_client.param_serialize(
- method='GET',
- resource_path='/api/v1/organizations/{org_code}/users/{user_id}/mfa',
+ method='DELETE',
+ resource_path='/api/v1/organizations/{org_code}/users/{user_id}/roles/{role_id}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -4773,10 +4794,10 @@ def _get_org_user_mfa_serialize(
@validate_call
- def get_organization(
+ def enable_org_connection(
self,
- code: Annotated[Optional[StrictStr], Field(description="The organization's code.")] = None,
- expand: Annotated[Optional[StrictStr], Field(description="Specify additional data to retrieve. Use \"billing\".")] = None,
+ organization_code: Annotated[StrictStr, Field(description="The unique code for the organization.")],
+ connection_id: Annotated[StrictStr, Field(description="The identifier for the connection.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -4789,15 +4810,15 @@ def get_organization(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> GetOrganizationResponse:
- """Get organization
+ ) -> None:
+ """Enable connection
- Retrieve organization details by code. read:organizations
+ Enable an auth connection for an organization. create:organization_connections
- :param code: The organization's code.
- :type code: str
- :param expand: Specify additional data to retrieve. Use \"billing\".
- :type expand: str
+ :param organization_code: The unique code for the organization. (required)
+ :type organization_code: str
+ :param connection_id: The identifier for the connection. (required)
+ :type connection_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
@@ -4820,9 +4841,9 @@ def get_organization(
:return: Returns the result object.
""" # noqa: E501
- _param = self._get_organization_serialize(
- code=code,
- expand=expand,
+ _param = self._enable_org_connection_serialize(
+ organization_code=organization_code,
+ connection_id=connection_id,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -4830,7 +4851,7 @@ def get_organization(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "GetOrganizationResponse",
+ '200': None,
'400': "ErrorResponse",
'403': "ErrorResponse",
'429': "ErrorResponse",
@@ -4847,10 +4868,10 @@ def get_organization(
@validate_call
- def get_organization_with_http_info(
+ def enable_org_connection_with_http_info(
self,
- code: Annotated[Optional[StrictStr], Field(description="The organization's code.")] = None,
- expand: Annotated[Optional[StrictStr], Field(description="Specify additional data to retrieve. Use \"billing\".")] = None,
+ organization_code: Annotated[StrictStr, Field(description="The unique code for the organization.")],
+ connection_id: Annotated[StrictStr, Field(description="The identifier for the connection.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -4863,15 +4884,15 @@ def get_organization_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[GetOrganizationResponse]:
- """Get organization
+ ) -> ApiResponse[None]:
+ """Enable connection
- Retrieve organization details by code. read:organizations
+ Enable an auth connection for an organization. create:organization_connections
- :param code: The organization's code.
- :type code: str
- :param expand: Specify additional data to retrieve. Use \"billing\".
- :type expand: str
+ :param organization_code: The unique code for the organization. (required)
+ :type organization_code: str
+ :param connection_id: The identifier for the connection. (required)
+ :type connection_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
@@ -4894,9 +4915,9 @@ def get_organization_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._get_organization_serialize(
- code=code,
- expand=expand,
+ _param = self._enable_org_connection_serialize(
+ organization_code=organization_code,
+ connection_id=connection_id,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -4904,7 +4925,7 @@ def get_organization_with_http_info(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "GetOrganizationResponse",
+ '200': None,
'400': "ErrorResponse",
'403': "ErrorResponse",
'429': "ErrorResponse",
@@ -4921,10 +4942,10 @@ def get_organization_with_http_info(
@validate_call
- def get_organization_without_preload_content(
+ def enable_org_connection_without_preload_content(
self,
- code: Annotated[Optional[StrictStr], Field(description="The organization's code.")] = None,
- expand: Annotated[Optional[StrictStr], Field(description="Specify additional data to retrieve. Use \"billing\".")] = None,
+ organization_code: Annotated[StrictStr, Field(description="The unique code for the organization.")],
+ connection_id: Annotated[StrictStr, Field(description="The identifier for the connection.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -4938,14 +4959,14 @@ def get_organization_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """Get organization
+ """Enable connection
- Retrieve organization details by code. read:organizations
+ Enable an auth connection for an organization. create:organization_connections
- :param code: The organization's code.
- :type code: str
- :param expand: Specify additional data to retrieve. Use \"billing\".
- :type expand: str
+ :param organization_code: The unique code for the organization. (required)
+ :type organization_code: str
+ :param connection_id: The identifier for the connection. (required)
+ :type connection_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
@@ -4968,9 +4989,9 @@ def get_organization_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._get_organization_serialize(
- code=code,
- expand=expand,
+ _param = self._enable_org_connection_serialize(
+ organization_code=organization_code,
+ connection_id=connection_id,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -4978,7 +4999,7 @@ def get_organization_without_preload_content(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "GetOrganizationResponse",
+ '200': None,
'400': "ErrorResponse",
'403': "ErrorResponse",
'429': "ErrorResponse",
@@ -4990,10 +5011,10 @@ def get_organization_without_preload_content(
return response_data.response
- def _get_organization_serialize(
+ def _enable_org_connection_serialize(
self,
- code,
- expand,
+ organization_code,
+ connection_id,
_request_auth,
_content_type,
_headers,
@@ -5015,15 +5036,11 @@ def _get_organization_serialize(
_body_params: Optional[bytes] = None
# process the path parameters
+ if organization_code is not None:
+ _path_params['organization_code'] = organization_code
+ if connection_id is not None:
+ _path_params['connection_id'] = connection_id
# process the query parameters
- if code is not None:
-
- _query_params.append(('code', code))
-
- if expand is not None:
-
- _query_params.append(('expand', expand))
-
# process the header parameters
# process the form parameters
# process the body parameter
@@ -5044,8 +5061,8 @@ def _get_organization_serialize(
]
return self.api_client.param_serialize(
- method='GET',
- resource_path='/api/v1/organization',
+ method='POST',
+ resource_path='/api/v1/organizations/{organization_code}/connections/{connection_id}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -5062,9 +5079,10 @@ def _get_organization_serialize(
@validate_call
- def get_organization_connections(
+ def get_org_user_mfa(
self,
- organization_code: Annotated[StrictStr, Field(description="The organization code.")],
+ org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
+ user_id: Annotated[StrictStr, Field(description="The identifier for the user")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -5077,13 +5095,15 @@ def get_organization_connections(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> GetConnectionsResponse:
- """Get connections
+ ) -> GetUserMfaResponse:
+ """Get an organization user's MFA configuration
- Gets all connections for an organization. read:organization_connections
+ Get an organization user’s MFA configuration. read:organization_user_mfa
- :param organization_code: The organization code. (required)
- :type organization_code: str
+ :param org_code: The identifier for the organization. (required)
+ :type org_code: str
+ :param user_id: The identifier for the user (required)
+ :type user_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
@@ -5106,8 +5126,9 @@ def get_organization_connections(
:return: Returns the result object.
""" # noqa: E501
- _param = self._get_organization_connections_serialize(
- organization_code=organization_code,
+ _param = self._get_org_user_mfa_serialize(
+ org_code=org_code,
+ user_id=user_id,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -5115,9 +5136,10 @@ def get_organization_connections(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "GetConnectionsResponse",
+ '200': "GetUserMfaResponse",
'400': "ErrorResponse",
'403': "ErrorResponse",
+ '404': "NotFoundResponse",
'429': "ErrorResponse",
}
response_data = self.api_client.call_api(
@@ -5132,9 +5154,10 @@ def get_organization_connections(
@validate_call
- def get_organization_connections_with_http_info(
+ def get_org_user_mfa_with_http_info(
self,
- organization_code: Annotated[StrictStr, Field(description="The organization code.")],
+ org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
+ user_id: Annotated[StrictStr, Field(description="The identifier for the user")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -5147,13 +5170,15 @@ def get_organization_connections_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[GetConnectionsResponse]:
- """Get connections
+ ) -> ApiResponse[GetUserMfaResponse]:
+ """Get an organization user's MFA configuration
- Gets all connections for an organization. read:organization_connections
+ Get an organization user’s MFA configuration. read:organization_user_mfa
- :param organization_code: The organization code. (required)
- :type organization_code: str
+ :param org_code: The identifier for the organization. (required)
+ :type org_code: str
+ :param user_id: The identifier for the user (required)
+ :type user_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
@@ -5176,8 +5201,9 @@ def get_organization_connections_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._get_organization_connections_serialize(
- organization_code=organization_code,
+ _param = self._get_org_user_mfa_serialize(
+ org_code=org_code,
+ user_id=user_id,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -5185,9 +5211,10 @@ def get_organization_connections_with_http_info(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "GetConnectionsResponse",
+ '200': "GetUserMfaResponse",
'400': "ErrorResponse",
'403': "ErrorResponse",
+ '404': "NotFoundResponse",
'429': "ErrorResponse",
}
response_data = self.api_client.call_api(
@@ -5202,9 +5229,10 @@ def get_organization_connections_with_http_info(
@validate_call
- def get_organization_connections_without_preload_content(
+ def get_org_user_mfa_without_preload_content(
self,
- organization_code: Annotated[StrictStr, Field(description="The organization code.")],
+ org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
+ user_id: Annotated[StrictStr, Field(description="The identifier for the user")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -5218,12 +5246,14 @@ def get_organization_connections_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """Get connections
+ """Get an organization user's MFA configuration
- Gets all connections for an organization. read:organization_connections
+ Get an organization user’s MFA configuration. read:organization_user_mfa
- :param organization_code: The organization code. (required)
- :type organization_code: str
+ :param org_code: The identifier for the organization. (required)
+ :type org_code: str
+ :param user_id: The identifier for the user (required)
+ :type user_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
@@ -5246,8 +5276,9 @@ def get_organization_connections_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._get_organization_connections_serialize(
- organization_code=organization_code,
+ _param = self._get_org_user_mfa_serialize(
+ org_code=org_code,
+ user_id=user_id,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -5255,9 +5286,10 @@ def get_organization_connections_without_preload_content(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "GetConnectionsResponse",
+ '200': "GetUserMfaResponse",
'400': "ErrorResponse",
'403': "ErrorResponse",
+ '404': "NotFoundResponse",
'429': "ErrorResponse",
}
response_data = self.api_client.call_api(
@@ -5267,9 +5299,10 @@ def get_organization_connections_without_preload_content(
return response_data.response
- def _get_organization_connections_serialize(
+ def _get_org_user_mfa_serialize(
self,
- organization_code,
+ org_code,
+ user_id,
_request_auth,
_content_type,
_headers,
@@ -5291,8 +5324,10 @@ def _get_organization_connections_serialize(
_body_params: Optional[bytes] = None
# process the path parameters
- if organization_code is not None:
- _path_params['organization_code'] = organization_code
+ if org_code is not None:
+ _path_params['org_code'] = org_code
+ if user_id is not None:
+ _path_params['user_id'] = user_id
# process the query parameters
# process the header parameters
# process the form parameters
@@ -5315,7 +5350,7 @@ def _get_organization_connections_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/organizations/{organization_code}/connections',
+ resource_path='/api/v1/organizations/{org_code}/users/{user_id}/mfa',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -5332,9 +5367,10 @@ def _get_organization_connections_serialize(
@validate_call
- def get_organization_feature_flags(
+ def get_organization(
self,
- org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
+ code: Annotated[StrictStr, Field(description="The organization's code.")],
+ expand: Annotated[Optional[StrictStr], Field(description="Additional data to include in the response. Allowed value: \"billing\".")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -5347,13 +5383,15 @@ def get_organization_feature_flags(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> GetOrganizationFeatureFlagsResponse:
- """List Organization Feature Flags
+ ) -> GetOrganizationResponse:
+ """Get organization
- Get all organization feature flags. read:organization_feature_flags
+ Retrieve organization details by code. read:organizations
- :param org_code: The identifier for the organization. (required)
- :type org_code: str
+ :param code: The organization's code. (required)
+ :type code: str
+ :param expand: Additional data to include in the response. Allowed value: \"billing\".
+ :type expand: 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
@@ -5376,8 +5414,9 @@ def get_organization_feature_flags(
:return: Returns the result object.
""" # noqa: E501
- _param = self._get_organization_feature_flags_serialize(
- org_code=org_code,
+ _param = self._get_organization_serialize(
+ code=code,
+ expand=expand,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -5385,10 +5424,10 @@ def get_organization_feature_flags(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "GetOrganizationFeatureFlagsResponse",
+ '200': "GetOrganizationResponse",
'400': "ErrorResponse",
- '403': None,
- '429': None,
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
@@ -5402,9 +5441,10 @@ def get_organization_feature_flags(
@validate_call
- def get_organization_feature_flags_with_http_info(
+ def get_organization_with_http_info(
self,
- org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
+ code: Annotated[StrictStr, Field(description="The organization's code.")],
+ expand: Annotated[Optional[StrictStr], Field(description="Additional data to include in the response. Allowed value: \"billing\".")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -5417,13 +5457,15 @@ def get_organization_feature_flags_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[GetOrganizationFeatureFlagsResponse]:
- """List Organization Feature Flags
+ ) -> ApiResponse[GetOrganizationResponse]:
+ """Get organization
- Get all organization feature flags. read:organization_feature_flags
+ Retrieve organization details by code. read:organizations
- :param org_code: The identifier for the organization. (required)
- :type org_code: str
+ :param code: The organization's code. (required)
+ :type code: str
+ :param expand: Additional data to include in the response. Allowed value: \"billing\".
+ :type expand: 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
@@ -5446,8 +5488,9 @@ def get_organization_feature_flags_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._get_organization_feature_flags_serialize(
- org_code=org_code,
+ _param = self._get_organization_serialize(
+ code=code,
+ expand=expand,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -5455,10 +5498,10 @@ def get_organization_feature_flags_with_http_info(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "GetOrganizationFeatureFlagsResponse",
+ '200': "GetOrganizationResponse",
'400': "ErrorResponse",
- '403': None,
- '429': None,
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
@@ -5472,9 +5515,10 @@ def get_organization_feature_flags_with_http_info(
@validate_call
- def get_organization_feature_flags_without_preload_content(
+ def get_organization_without_preload_content(
self,
- org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
+ code: Annotated[StrictStr, Field(description="The organization's code.")],
+ expand: Annotated[Optional[StrictStr], Field(description="Additional data to include in the response. Allowed value: \"billing\".")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -5488,12 +5532,14 @@ def get_organization_feature_flags_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """List Organization Feature Flags
+ """Get organization
- Get all organization feature flags. read:organization_feature_flags
+ Retrieve organization details by code. read:organizations
- :param org_code: The identifier for the organization. (required)
- :type org_code: str
+ :param code: The organization's code. (required)
+ :type code: str
+ :param expand: Additional data to include in the response. Allowed value: \"billing\".
+ :type expand: 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
@@ -5516,8 +5562,9 @@ def get_organization_feature_flags_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._get_organization_feature_flags_serialize(
- org_code=org_code,
+ _param = self._get_organization_serialize(
+ code=code,
+ expand=expand,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -5525,10 +5572,10 @@ def get_organization_feature_flags_without_preload_content(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "GetOrganizationFeatureFlagsResponse",
+ '200': "GetOrganizationResponse",
'400': "ErrorResponse",
- '403': None,
- '429': None,
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
@@ -5537,9 +5584,10 @@ def get_organization_feature_flags_without_preload_content(
return response_data.response
- def _get_organization_feature_flags_serialize(
+ def _get_organization_serialize(
self,
- org_code,
+ code,
+ expand,
_request_auth,
_content_type,
_headers,
@@ -5561,9 +5609,15 @@ def _get_organization_feature_flags_serialize(
_body_params: Optional[bytes] = None
# process the path parameters
- if org_code is not None:
- _path_params['org_code'] = org_code
# process the query parameters
+ if code is not None:
+
+ _query_params.append(('code', code))
+
+ if expand is not None:
+
+ _query_params.append(('expand', expand))
+
# process the header parameters
# process the form parameters
# process the body parameter
@@ -5573,8 +5627,7 @@ def _get_organization_feature_flags_serialize(
if 'Accept' not in _header_params:
_header_params['Accept'] = self.api_client.select_header_accept(
[
- 'application/json',
- 'application/json; charset=utf-8'
+ 'application/json'
]
)
@@ -5586,7 +5639,7 @@ def _get_organization_feature_flags_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/organizations/{org_code}/feature_flags',
+ resource_path='/api/v1/organization',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -5603,9 +5656,9 @@ def _get_organization_feature_flags_serialize(
@validate_call
- def get_organization_property_values(
+ def get_organization_connections(
self,
- org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ organization_code: Annotated[StrictStr, Field(description="The organization code.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -5618,13 +5671,13 @@ def get_organization_property_values(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> GetPropertyValuesResponse:
- """Get Organization Property Values
+ ) -> GetConnectionsResponse:
+ """Get connections
- Gets properties for an organization by org code. read:organization_properties
+ Gets all connections for an organization. read:organization_connections
- :param org_code: The organization's code. (required)
- :type org_code: str
+ :param organization_code: The organization code. (required)
+ :type organization_code: 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
@@ -5647,8 +5700,8 @@ def get_organization_property_values(
:return: Returns the result object.
""" # noqa: E501
- _param = self._get_organization_property_values_serialize(
- org_code=org_code,
+ _param = self._get_organization_connections_serialize(
+ organization_code=organization_code,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -5656,10 +5709,10 @@ def get_organization_property_values(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "GetPropertyValuesResponse",
+ '200': "GetConnectionsResponse",
'400': "ErrorResponse",
- '403': None,
- '429': None,
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
@@ -5673,9 +5726,9 @@ def get_organization_property_values(
@validate_call
- def get_organization_property_values_with_http_info(
+ def get_organization_connections_with_http_info(
self,
- org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ organization_code: Annotated[StrictStr, Field(description="The organization code.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -5688,13 +5741,13 @@ def get_organization_property_values_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[GetPropertyValuesResponse]:
- """Get Organization Property Values
+ ) -> ApiResponse[GetConnectionsResponse]:
+ """Get connections
- Gets properties for an organization by org code. read:organization_properties
+ Gets all connections for an organization. read:organization_connections
- :param org_code: The organization's code. (required)
- :type org_code: str
+ :param organization_code: The organization code. (required)
+ :type organization_code: 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
@@ -5717,8 +5770,8 @@ def get_organization_property_values_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._get_organization_property_values_serialize(
- org_code=org_code,
+ _param = self._get_organization_connections_serialize(
+ organization_code=organization_code,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -5726,10 +5779,10 @@ def get_organization_property_values_with_http_info(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "GetPropertyValuesResponse",
+ '200': "GetConnectionsResponse",
'400': "ErrorResponse",
- '403': None,
- '429': None,
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
@@ -5743,9 +5796,9 @@ def get_organization_property_values_with_http_info(
@validate_call
- def get_organization_property_values_without_preload_content(
+ def get_organization_connections_without_preload_content(
self,
- org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ organization_code: Annotated[StrictStr, Field(description="The organization code.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -5759,12 +5812,12 @@ def get_organization_property_values_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """Get Organization Property Values
+ """Get connections
- Gets properties for an organization by org code. read:organization_properties
+ Gets all connections for an organization. read:organization_connections
- :param org_code: The organization's code. (required)
- :type org_code: str
+ :param organization_code: The organization code. (required)
+ :type organization_code: 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
@@ -5787,8 +5840,8 @@ def get_organization_property_values_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._get_organization_property_values_serialize(
- org_code=org_code,
+ _param = self._get_organization_connections_serialize(
+ organization_code=organization_code,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -5796,10 +5849,10 @@ def get_organization_property_values_without_preload_content(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "GetPropertyValuesResponse",
+ '200': "GetConnectionsResponse",
'400': "ErrorResponse",
- '403': None,
- '429': None,
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
@@ -5808,9 +5861,9 @@ def get_organization_property_values_without_preload_content(
return response_data.response
- def _get_organization_property_values_serialize(
+ def _get_organization_connections_serialize(
self,
- org_code,
+ organization_code,
_request_auth,
_content_type,
_headers,
@@ -5832,8 +5885,8 @@ def _get_organization_property_values_serialize(
_body_params: Optional[bytes] = None
# process the path parameters
- if org_code is not None:
- _path_params['org_code'] = org_code
+ if organization_code is not None:
+ _path_params['organization_code'] = organization_code
# process the query parameters
# process the header parameters
# process the form parameters
@@ -5844,8 +5897,7 @@ def _get_organization_property_values_serialize(
if 'Accept' not in _header_params:
_header_params['Accept'] = self.api_client.select_header_accept(
[
- 'application/json',
- 'application/json; charset=utf-8'
+ 'application/json'
]
)
@@ -5857,7 +5909,7 @@ def _get_organization_property_values_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/organizations/{org_code}/properties',
+ resource_path='/api/v1/organizations/{organization_code}/connections',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -5874,11 +5926,9 @@ def _get_organization_property_values_serialize(
@validate_call
- def get_organization_user_permissions(
+ def get_organization_feature_flags(
self,
- org_code: Annotated[StrictStr, Field(description="The organization's code.")],
- user_id: Annotated[StrictStr, Field(description="The user's id.")],
- expand: Annotated[Optional[StrictStr], Field(description="Specify additional data to retrieve. Use \"roles\".")] = None,
+ org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -5891,17 +5941,13 @@ def get_organization_user_permissions(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> GetOrganizationsUserPermissionsResponse:
- """List Organization User Permissions
+ ) -> GetOrganizationFeatureFlagsResponse:
+ """List Organization Feature Flags
- Get permissions for an organization user. read:organization_user_permissions
+ Get all organization feature flags. read:organization_feature_flags
- :param org_code: The organization's code. (required)
+ :param org_code: The identifier for the organization. (required)
:type org_code: str
- :param user_id: The user's id. (required)
- :type user_id: str
- :param expand: Specify additional data to retrieve. Use \"roles\".
- :type expand: 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
@@ -5924,10 +5970,8 @@ def get_organization_user_permissions(
:return: Returns the result object.
""" # noqa: E501
- _param = self._get_organization_user_permissions_serialize(
+ _param = self._get_organization_feature_flags_serialize(
org_code=org_code,
- user_id=user_id,
- expand=expand,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -5935,7 +5979,8 @@ def get_organization_user_permissions(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "GetOrganizationsUserPermissionsResponse",
+ '200': "GetOrganizationFeatureFlagsResponse",
+ '400': "ErrorResponse",
'403': None,
'429': None,
}
@@ -5951,11 +5996,9 @@ def get_organization_user_permissions(
@validate_call
- def get_organization_user_permissions_with_http_info(
+ def get_organization_feature_flags_with_http_info(
self,
- org_code: Annotated[StrictStr, Field(description="The organization's code.")],
- user_id: Annotated[StrictStr, Field(description="The user's id.")],
- expand: Annotated[Optional[StrictStr], Field(description="Specify additional data to retrieve. Use \"roles\".")] = None,
+ org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -5968,17 +6011,13 @@ def get_organization_user_permissions_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[GetOrganizationsUserPermissionsResponse]:
- """List Organization User Permissions
+ ) -> ApiResponse[GetOrganizationFeatureFlagsResponse]:
+ """List Organization Feature Flags
- Get permissions for an organization user. read:organization_user_permissions
+ Get all organization feature flags. read:organization_feature_flags
- :param org_code: The organization's code. (required)
+ :param org_code: The identifier for the organization. (required)
:type org_code: str
- :param user_id: The user's id. (required)
- :type user_id: str
- :param expand: Specify additional data to retrieve. Use \"roles\".
- :type expand: 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
@@ -6001,10 +6040,8 @@ def get_organization_user_permissions_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._get_organization_user_permissions_serialize(
+ _param = self._get_organization_feature_flags_serialize(
org_code=org_code,
- user_id=user_id,
- expand=expand,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -6012,7 +6049,8 @@ def get_organization_user_permissions_with_http_info(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "GetOrganizationsUserPermissionsResponse",
+ '200': "GetOrganizationFeatureFlagsResponse",
+ '400': "ErrorResponse",
'403': None,
'429': None,
}
@@ -6028,11 +6066,9 @@ def get_organization_user_permissions_with_http_info(
@validate_call
- def get_organization_user_permissions_without_preload_content(
+ def get_organization_feature_flags_without_preload_content(
self,
- org_code: Annotated[StrictStr, Field(description="The organization's code.")],
- user_id: Annotated[StrictStr, Field(description="The user's id.")],
- expand: Annotated[Optional[StrictStr], Field(description="Specify additional data to retrieve. Use \"roles\".")] = None,
+ org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -6046,16 +6082,12 @@ def get_organization_user_permissions_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """List Organization User Permissions
+ """List Organization Feature Flags
- Get permissions for an organization user. read:organization_user_permissions
+ Get all organization feature flags. read:organization_feature_flags
- :param org_code: The organization's code. (required)
+ :param org_code: The identifier for the organization. (required)
:type org_code: str
- :param user_id: The user's id. (required)
- :type user_id: str
- :param expand: Specify additional data to retrieve. Use \"roles\".
- :type expand: 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
@@ -6078,10 +6110,8 @@ def get_organization_user_permissions_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._get_organization_user_permissions_serialize(
+ _param = self._get_organization_feature_flags_serialize(
org_code=org_code,
- user_id=user_id,
- expand=expand,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -6089,7 +6119,8 @@ def get_organization_user_permissions_without_preload_content(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "GetOrganizationsUserPermissionsResponse",
+ '200': "GetOrganizationFeatureFlagsResponse",
+ '400': "ErrorResponse",
'403': None,
'429': None,
}
@@ -6100,11 +6131,9 @@ def get_organization_user_permissions_without_preload_content(
return response_data.response
- def _get_organization_user_permissions_serialize(
+ def _get_organization_feature_flags_serialize(
self,
org_code,
- user_id,
- expand,
_request_auth,
_content_type,
_headers,
@@ -6128,13 +6157,7 @@ def _get_organization_user_permissions_serialize(
# process the path parameters
if org_code is not None:
_path_params['org_code'] = org_code
- if user_id is not None:
- _path_params['user_id'] = user_id
# process the query parameters
- if expand is not None:
-
- _query_params.append(('expand', expand))
-
# process the header parameters
# process the form parameters
# process the body parameter
@@ -6157,7 +6180,7 @@ def _get_organization_user_permissions_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/organizations/{org_code}/users/{user_id}/permissions',
+ resource_path='/api/v1/organizations/{org_code}/feature_flags',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -6174,10 +6197,10 @@ def _get_organization_user_permissions_serialize(
@validate_call
- def get_organization_user_roles(
+ def get_organization_invite(
self,
org_code: Annotated[StrictStr, Field(description="The organization's code.")],
- user_id: Annotated[StrictStr, Field(description="The user's id.")],
+ invite_code: Annotated[StrictStr, Field(description="The invitation's code.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -6190,15 +6213,15 @@ def get_organization_user_roles(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> GetOrganizationsUserRolesResponse:
- """List Organization User Roles
+ ) -> GetOrganizationInviteResponse:
+ """Get organization invite
- Get roles for an organization user. read:organization_user_roles
+ Get details of a specific invitation by its code. read:organization_invites
:param org_code: The organization's code. (required)
:type org_code: str
- :param user_id: The user's id. (required)
- :type user_id: str
+ :param invite_code: The invitation's code. (required)
+ :type invite_code: 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
@@ -6221,9 +6244,9 @@ def get_organization_user_roles(
:return: Returns the result object.
""" # noqa: E501
- _param = self._get_organization_user_roles_serialize(
+ _param = self._get_organization_invite_serialize(
org_code=org_code,
- user_id=user_id,
+ invite_code=invite_code,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -6231,9 +6254,11 @@ def get_organization_user_roles(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "GetOrganizationsUserRolesResponse",
- '403': None,
- '429': None,
+ '200': "GetOrganizationInviteResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '404': "NotFoundResponse",
+ '429': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
@@ -6247,10 +6272,10 @@ def get_organization_user_roles(
@validate_call
- def get_organization_user_roles_with_http_info(
+ def get_organization_invite_with_http_info(
self,
org_code: Annotated[StrictStr, Field(description="The organization's code.")],
- user_id: Annotated[StrictStr, Field(description="The user's id.")],
+ invite_code: Annotated[StrictStr, Field(description="The invitation's code.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -6263,15 +6288,15 @@ def get_organization_user_roles_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[GetOrganizationsUserRolesResponse]:
- """List Organization User Roles
+ ) -> ApiResponse[GetOrganizationInviteResponse]:
+ """Get organization invite
- Get roles for an organization user. read:organization_user_roles
+ Get details of a specific invitation by its code. read:organization_invites
:param org_code: The organization's code. (required)
:type org_code: str
- :param user_id: The user's id. (required)
- :type user_id: str
+ :param invite_code: The invitation's code. (required)
+ :type invite_code: 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
@@ -6294,9 +6319,9 @@ def get_organization_user_roles_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._get_organization_user_roles_serialize(
+ _param = self._get_organization_invite_serialize(
org_code=org_code,
- user_id=user_id,
+ invite_code=invite_code,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -6304,9 +6329,11 @@ def get_organization_user_roles_with_http_info(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "GetOrganizationsUserRolesResponse",
- '403': None,
- '429': None,
+ '200': "GetOrganizationInviteResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '404': "NotFoundResponse",
+ '429': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
@@ -6320,10 +6347,10 @@ def get_organization_user_roles_with_http_info(
@validate_call
- def get_organization_user_roles_without_preload_content(
+ def get_organization_invite_without_preload_content(
self,
org_code: Annotated[StrictStr, Field(description="The organization's code.")],
- user_id: Annotated[StrictStr, Field(description="The user's id.")],
+ invite_code: Annotated[StrictStr, Field(description="The invitation's code.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -6337,14 +6364,14 @@ def get_organization_user_roles_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """List Organization User Roles
+ """Get organization invite
- Get roles for an organization user. read:organization_user_roles
+ Get details of a specific invitation by its code. read:organization_invites
:param org_code: The organization's code. (required)
:type org_code: str
- :param user_id: The user's id. (required)
- :type user_id: str
+ :param invite_code: The invitation's code. (required)
+ :type invite_code: 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
@@ -6367,9 +6394,9 @@ def get_organization_user_roles_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._get_organization_user_roles_serialize(
+ _param = self._get_organization_invite_serialize(
org_code=org_code,
- user_id=user_id,
+ invite_code=invite_code,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -6377,9 +6404,11 @@ def get_organization_user_roles_without_preload_content(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "GetOrganizationsUserRolesResponse",
- '403': None,
- '429': None,
+ '200': "GetOrganizationInviteResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '404': "NotFoundResponse",
+ '429': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
@@ -6388,10 +6417,10 @@ def get_organization_user_roles_without_preload_content(
return response_data.response
- def _get_organization_user_roles_serialize(
+ def _get_organization_invite_serialize(
self,
org_code,
- user_id,
+ invite_code,
_request_auth,
_content_type,
_headers,
@@ -6415,8 +6444,8 @@ def _get_organization_user_roles_serialize(
# process the path parameters
if org_code is not None:
_path_params['org_code'] = org_code
- if user_id is not None:
- _path_params['user_id'] = user_id
+ if invite_code is not None:
+ _path_params['invite_code'] = invite_code
# process the query parameters
# process the header parameters
# process the form parameters
@@ -6427,8 +6456,7 @@ def _get_organization_user_roles_serialize(
if 'Accept' not in _header_params:
_header_params['Accept'] = self.api_client.select_header_accept(
[
- 'application/json',
- 'application/json; charset=utf-8'
+ 'application/json'
]
)
@@ -6440,7 +6468,7 @@ def _get_organization_user_roles_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/organizations/{org_code}/users/{user_id}/roles',
+ resource_path='/api/v1/organization/{org_code}/invites/{invite_code}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -6457,14 +6485,14 @@ def _get_organization_user_roles_serialize(
@validate_call
- def get_organization_users(
+ def get_organization_invites(
self,
org_code: Annotated[StrictStr, Field(description="The organization's code.")],
sort: Annotated[Optional[StrictStr], Field(description="Field and order to sort the result by.")] = None,
page_size: Annotated[Optional[StrictInt], Field(description="Number of results per page. Defaults to 10 if parameter not sent.")] = None,
next_token: Annotated[Optional[StrictStr], Field(description="A string to get the next page of results if there are more results.")] = None,
- permissions: Annotated[Optional[StrictStr], Field(description="Filter by user permissions comma separated (where all match)")] = None,
- roles: Annotated[Optional[StrictStr], Field(description="Filter by user roles comma separated (where all match)")] = None,
+ include_revoked: Annotated[Optional[StrictBool], Field(description="Include revoked invitations in the results.")] = None,
+ include_accepted: Annotated[Optional[StrictBool], Field(description="Include accepted invitations in the results.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -6477,10 +6505,10 @@ def get_organization_users(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> GetOrganizationUsersResponse:
- """Get organization users
+ ) -> GetOrganizationInvitesResponse:
+ """Get organization invites
- Get user details for all members of an organization. read:organization_users
+ Get a list of invitations for an organization. By default, only pending (non-revoked, non-accepted) invitations are returned. read:organization_invites
:param org_code: The organization's code. (required)
:type org_code: str
@@ -6490,10 +6518,10 @@ def get_organization_users(
:type page_size: int
:param next_token: A string to get the next page of results if there are more results.
:type next_token: str
- :param permissions: Filter by user permissions comma separated (where all match)
- :type permissions: str
- :param roles: Filter by user roles comma separated (where all match)
- :type roles: str
+ :param include_revoked: Include revoked invitations in the results.
+ :type include_revoked: bool
+ :param include_accepted: Include accepted invitations in the results.
+ :type include_accepted: bool
: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
@@ -6516,13 +6544,13 @@ def get_organization_users(
:return: Returns the result object.
""" # noqa: E501
- _param = self._get_organization_users_serialize(
+ _param = self._get_organization_invites_serialize(
org_code=org_code,
sort=sort,
page_size=page_size,
next_token=next_token,
- permissions=permissions,
- roles=roles,
+ include_revoked=include_revoked,
+ include_accepted=include_accepted,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -6530,7 +6558,7 @@ def get_organization_users(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "GetOrganizationUsersResponse",
+ '200': "GetOrganizationInvitesResponse",
'400': "ErrorResponse",
'403': "ErrorResponse",
'429': "ErrorResponse",
@@ -6547,14 +6575,14 @@ def get_organization_users(
@validate_call
- def get_organization_users_with_http_info(
+ def get_organization_invites_with_http_info(
self,
org_code: Annotated[StrictStr, Field(description="The organization's code.")],
sort: Annotated[Optional[StrictStr], Field(description="Field and order to sort the result by.")] = None,
page_size: Annotated[Optional[StrictInt], Field(description="Number of results per page. Defaults to 10 if parameter not sent.")] = None,
next_token: Annotated[Optional[StrictStr], Field(description="A string to get the next page of results if there are more results.")] = None,
- permissions: Annotated[Optional[StrictStr], Field(description="Filter by user permissions comma separated (where all match)")] = None,
- roles: Annotated[Optional[StrictStr], Field(description="Filter by user roles comma separated (where all match)")] = None,
+ include_revoked: Annotated[Optional[StrictBool], Field(description="Include revoked invitations in the results.")] = None,
+ include_accepted: Annotated[Optional[StrictBool], Field(description="Include accepted invitations in the results.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -6567,10 +6595,10 @@ def get_organization_users_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[GetOrganizationUsersResponse]:
- """Get organization users
+ ) -> ApiResponse[GetOrganizationInvitesResponse]:
+ """Get organization invites
- Get user details for all members of an organization. read:organization_users
+ Get a list of invitations for an organization. By default, only pending (non-revoked, non-accepted) invitations are returned. read:organization_invites
:param org_code: The organization's code. (required)
:type org_code: str
@@ -6580,10 +6608,10 @@ def get_organization_users_with_http_info(
:type page_size: int
:param next_token: A string to get the next page of results if there are more results.
:type next_token: str
- :param permissions: Filter by user permissions comma separated (where all match)
- :type permissions: str
- :param roles: Filter by user roles comma separated (where all match)
- :type roles: str
+ :param include_revoked: Include revoked invitations in the results.
+ :type include_revoked: bool
+ :param include_accepted: Include accepted invitations in the results.
+ :type include_accepted: bool
: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
@@ -6606,13 +6634,13 @@ def get_organization_users_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._get_organization_users_serialize(
+ _param = self._get_organization_invites_serialize(
org_code=org_code,
sort=sort,
page_size=page_size,
next_token=next_token,
- permissions=permissions,
- roles=roles,
+ include_revoked=include_revoked,
+ include_accepted=include_accepted,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -6620,7 +6648,7 @@ def get_organization_users_with_http_info(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "GetOrganizationUsersResponse",
+ '200': "GetOrganizationInvitesResponse",
'400': "ErrorResponse",
'403': "ErrorResponse",
'429': "ErrorResponse",
@@ -6637,14 +6665,14 @@ def get_organization_users_with_http_info(
@validate_call
- def get_organization_users_without_preload_content(
+ def get_organization_invites_without_preload_content(
self,
org_code: Annotated[StrictStr, Field(description="The organization's code.")],
sort: Annotated[Optional[StrictStr], Field(description="Field and order to sort the result by.")] = None,
page_size: Annotated[Optional[StrictInt], Field(description="Number of results per page. Defaults to 10 if parameter not sent.")] = None,
next_token: Annotated[Optional[StrictStr], Field(description="A string to get the next page of results if there are more results.")] = None,
- permissions: Annotated[Optional[StrictStr], Field(description="Filter by user permissions comma separated (where all match)")] = None,
- roles: Annotated[Optional[StrictStr], Field(description="Filter by user roles comma separated (where all match)")] = None,
+ include_revoked: Annotated[Optional[StrictBool], Field(description="Include revoked invitations in the results.")] = None,
+ include_accepted: Annotated[Optional[StrictBool], Field(description="Include accepted invitations in the results.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -6658,9 +6686,9 @@ def get_organization_users_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """Get organization users
+ """Get organization invites
- Get user details for all members of an organization. read:organization_users
+ Get a list of invitations for an organization. By default, only pending (non-revoked, non-accepted) invitations are returned. read:organization_invites
:param org_code: The organization's code. (required)
:type org_code: str
@@ -6670,10 +6698,10 @@ def get_organization_users_without_preload_content(
:type page_size: int
:param next_token: A string to get the next page of results if there are more results.
:type next_token: str
- :param permissions: Filter by user permissions comma separated (where all match)
- :type permissions: str
- :param roles: Filter by user roles comma separated (where all match)
- :type roles: str
+ :param include_revoked: Include revoked invitations in the results.
+ :type include_revoked: bool
+ :param include_accepted: Include accepted invitations in the results.
+ :type include_accepted: bool
: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
@@ -6696,13 +6724,13 @@ def get_organization_users_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._get_organization_users_serialize(
+ _param = self._get_organization_invites_serialize(
org_code=org_code,
sort=sort,
page_size=page_size,
next_token=next_token,
- permissions=permissions,
- roles=roles,
+ include_revoked=include_revoked,
+ include_accepted=include_accepted,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -6710,7 +6738,7 @@ def get_organization_users_without_preload_content(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "GetOrganizationUsersResponse",
+ '200': "GetOrganizationInvitesResponse",
'400': "ErrorResponse",
'403': "ErrorResponse",
'429': "ErrorResponse",
@@ -6722,14 +6750,14 @@ def get_organization_users_without_preload_content(
return response_data.response
- def _get_organization_users_serialize(
+ def _get_organization_invites_serialize(
self,
org_code,
sort,
page_size,
next_token,
- permissions,
- roles,
+ include_revoked,
+ include_accepted,
_request_auth,
_content_type,
_headers,
@@ -6766,13 +6794,13 @@ def _get_organization_users_serialize(
_query_params.append(('next_token', next_token))
- if permissions is not None:
+ if include_revoked is not None:
- _query_params.append(('permissions', permissions))
+ _query_params.append(('include_revoked', include_revoked))
- if roles is not None:
+ if include_accepted is not None:
- _query_params.append(('roles', roles))
+ _query_params.append(('include_accepted', include_accepted))
# process the header parameters
# process the form parameters
@@ -6795,7 +6823,7 @@ def _get_organization_users_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/organizations/{org_code}/users',
+ resource_path='/api/v1/organization/{org_code}/invites',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -6812,11 +6840,9 @@ def _get_organization_users_serialize(
@validate_call
- def get_organizations(
+ def get_organization_passkey(
self,
- sort: Annotated[Optional[StrictStr], Field(description="Field and order to sort the result by.")] = None,
- page_size: Annotated[Optional[StrictInt], Field(description="Number of results per page. Defaults to 10 if parameter not sent.")] = None,
- next_token: Annotated[Optional[StrictStr], Field(description="A string to get the next page of results if there are more results.")] = None,
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -6829,17 +6855,13 @@ def get_organizations(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> GetOrganizationsResponse:
- """Get organizations
+ ) -> GetOrganizationPasskey200Response:
+ """Get organization passkey settings
- Get a list of organizations. read:organizations
+ Retrieve passkey settings for an organization, including whether the organization overrides the environment default. read:organization_passkey
- :param sort: Field and order to sort the result by.
- :type sort: str
- :param page_size: Number of results per page. Defaults to 10 if parameter not sent.
- :type page_size: int
- :param next_token: A string to get the next page of results if there are more results.
- :type next_token: str
+ :param org_code: The organization's code. (required)
+ :type org_code: 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
@@ -6862,10 +6884,8 @@ def get_organizations(
:return: Returns the result object.
""" # noqa: E501
- _param = self._get_organizations_serialize(
- sort=sort,
- page_size=page_size,
- next_token=next_token,
+ _param = self._get_organization_passkey_serialize(
+ org_code=org_code,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -6873,7 +6893,7 @@ def get_organizations(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "GetOrganizationsResponse",
+ '200': "GetOrganizationPasskey200Response",
'400': "ErrorResponse",
'403': "ErrorResponse",
'429': "ErrorResponse",
@@ -6890,11 +6910,9 @@ def get_organizations(
@validate_call
- def get_organizations_with_http_info(
+ def get_organization_passkey_with_http_info(
self,
- sort: Annotated[Optional[StrictStr], Field(description="Field and order to sort the result by.")] = None,
- page_size: Annotated[Optional[StrictInt], Field(description="Number of results per page. Defaults to 10 if parameter not sent.")] = None,
- next_token: Annotated[Optional[StrictStr], Field(description="A string to get the next page of results if there are more results.")] = None,
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -6907,17 +6925,13 @@ def get_organizations_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[GetOrganizationsResponse]:
- """Get organizations
+ ) -> ApiResponse[GetOrganizationPasskey200Response]:
+ """Get organization passkey settings
- Get a list of organizations. read:organizations
+ Retrieve passkey settings for an organization, including whether the organization overrides the environment default. read:organization_passkey
- :param sort: Field and order to sort the result by.
- :type sort: str
- :param page_size: Number of results per page. Defaults to 10 if parameter not sent.
- :type page_size: int
- :param next_token: A string to get the next page of results if there are more results.
- :type next_token: str
+ :param org_code: The organization's code. (required)
+ :type org_code: 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
@@ -6940,10 +6954,8 @@ def get_organizations_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._get_organizations_serialize(
- sort=sort,
- page_size=page_size,
- next_token=next_token,
+ _param = self._get_organization_passkey_serialize(
+ org_code=org_code,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -6951,7 +6963,7 @@ def get_organizations_with_http_info(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "GetOrganizationsResponse",
+ '200': "GetOrganizationPasskey200Response",
'400': "ErrorResponse",
'403': "ErrorResponse",
'429': "ErrorResponse",
@@ -6968,11 +6980,9 @@ def get_organizations_with_http_info(
@validate_call
- def get_organizations_without_preload_content(
+ def get_organization_passkey_without_preload_content(
self,
- sort: Annotated[Optional[StrictStr], Field(description="Field and order to sort the result by.")] = None,
- page_size: Annotated[Optional[StrictInt], Field(description="Number of results per page. Defaults to 10 if parameter not sent.")] = None,
- next_token: Annotated[Optional[StrictStr], Field(description="A string to get the next page of results if there are more results.")] = None,
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -6986,16 +6996,12 @@ def get_organizations_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """Get organizations
+ """Get organization passkey settings
- Get a list of organizations. read:organizations
+ Retrieve passkey settings for an organization, including whether the organization overrides the environment default. read:organization_passkey
- :param sort: Field and order to sort the result by.
- :type sort: str
- :param page_size: Number of results per page. Defaults to 10 if parameter not sent.
- :type page_size: int
- :param next_token: A string to get the next page of results if there are more results.
- :type next_token: str
+ :param org_code: The organization's code. (required)
+ :type org_code: 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
@@ -7018,10 +7024,8 @@ def get_organizations_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._get_organizations_serialize(
- sort=sort,
- page_size=page_size,
- next_token=next_token,
+ _param = self._get_organization_passkey_serialize(
+ org_code=org_code,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -7029,7 +7033,7 @@ def get_organizations_without_preload_content(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "GetOrganizationsResponse",
+ '200': "GetOrganizationPasskey200Response",
'400': "ErrorResponse",
'403': "ErrorResponse",
'429': "ErrorResponse",
@@ -7041,11 +7045,9 @@ def get_organizations_without_preload_content(
return response_data.response
- def _get_organizations_serialize(
+ def _get_organization_passkey_serialize(
self,
- sort,
- page_size,
- next_token,
+ org_code,
_request_auth,
_content_type,
_headers,
@@ -7067,19 +7069,9 @@ def _get_organizations_serialize(
_body_params: Optional[bytes] = None
# process the path parameters
+ if org_code is not None:
+ _path_params['org_code'] = org_code
# process the query parameters
- if sort is not None:
-
- _query_params.append(('sort', sort))
-
- if page_size is not None:
-
- _query_params.append(('page_size', page_size))
-
- if next_token is not None:
-
- _query_params.append(('next_token', next_token))
-
# process the header parameters
# process the form parameters
# process the body parameter
@@ -7101,7 +7093,7 @@ def _get_organizations_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/organizations',
+ resource_path='/api/v1/organizations/{org_code}/passkey',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -7118,7 +7110,7 @@ def _get_organizations_serialize(
@validate_call
- def read_organization_logo(
+ def get_organization_property_values(
self,
org_code: Annotated[StrictStr, Field(description="The organization's code.")],
_request_timeout: Union[
@@ -7133,10 +7125,10 @@ def read_organization_logo(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> ReadLogoResponse:
- """Read organization logo details
+ ) -> GetPropertyValuesResponse:
+ """Get Organization Property Values
- Read organization logo details read:organizations
+ Gets properties for an organization by org code. read:organization_properties
:param org_code: The organization's code. (required)
:type org_code: str
@@ -7162,7 +7154,7 @@ def read_organization_logo(
:return: Returns the result object.
""" # noqa: E501
- _param = self._read_organization_logo_serialize(
+ _param = self._get_organization_property_values_serialize(
org_code=org_code,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -7171,10 +7163,10 @@ def read_organization_logo(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "ReadLogoResponse",
+ '200': "GetPropertyValuesResponse",
'400': "ErrorResponse",
- '403': "ErrorResponse",
- '429': "ErrorResponse",
+ '403': None,
+ '429': None,
}
response_data = self.api_client.call_api(
*_param,
@@ -7188,7 +7180,7 @@ def read_organization_logo(
@validate_call
- def read_organization_logo_with_http_info(
+ def get_organization_property_values_with_http_info(
self,
org_code: Annotated[StrictStr, Field(description="The organization's code.")],
_request_timeout: Union[
@@ -7203,10 +7195,10 @@ def read_organization_logo_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[ReadLogoResponse]:
- """Read organization logo details
+ ) -> ApiResponse[GetPropertyValuesResponse]:
+ """Get Organization Property Values
- Read organization logo details read:organizations
+ Gets properties for an organization by org code. read:organization_properties
:param org_code: The organization's code. (required)
:type org_code: str
@@ -7232,7 +7224,7 @@ def read_organization_logo_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._read_organization_logo_serialize(
+ _param = self._get_organization_property_values_serialize(
org_code=org_code,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -7241,10 +7233,10 @@ def read_organization_logo_with_http_info(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "ReadLogoResponse",
+ '200': "GetPropertyValuesResponse",
'400': "ErrorResponse",
- '403': "ErrorResponse",
- '429': "ErrorResponse",
+ '403': None,
+ '429': None,
}
response_data = self.api_client.call_api(
*_param,
@@ -7258,7 +7250,7 @@ def read_organization_logo_with_http_info(
@validate_call
- def read_organization_logo_without_preload_content(
+ def get_organization_property_values_without_preload_content(
self,
org_code: Annotated[StrictStr, Field(description="The organization's code.")],
_request_timeout: Union[
@@ -7274,9 +7266,9 @@ def read_organization_logo_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """Read organization logo details
+ """Get Organization Property Values
- Read organization logo details read:organizations
+ Gets properties for an organization by org code. read:organization_properties
:param org_code: The organization's code. (required)
:type org_code: str
@@ -7302,7 +7294,7 @@ def read_organization_logo_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._read_organization_logo_serialize(
+ _param = self._get_organization_property_values_serialize(
org_code=org_code,
_request_auth=_request_auth,
_content_type=_content_type,
@@ -7311,10 +7303,10 @@ def read_organization_logo_without_preload_content(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "ReadLogoResponse",
+ '200': "GetPropertyValuesResponse",
'400': "ErrorResponse",
- '403': "ErrorResponse",
- '429': "ErrorResponse",
+ '403': None,
+ '429': None,
}
response_data = self.api_client.call_api(
*_param,
@@ -7323,7 +7315,7 @@ def read_organization_logo_without_preload_content(
return response_data.response
- def _read_organization_logo_serialize(
+ def _get_organization_property_values_serialize(
self,
org_code,
_request_auth,
@@ -7359,7 +7351,8 @@ def _read_organization_logo_serialize(
if 'Accept' not in _header_params:
_header_params['Accept'] = self.api_client.select_header_accept(
[
- 'application/json'
+ 'application/json',
+ 'application/json; charset=utf-8'
]
)
@@ -7371,7 +7364,7 @@ def _read_organization_logo_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/organizations/{org_code}/logos',
+ resource_path='/api/v1/organizations/{org_code}/properties',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -7388,10 +7381,12 @@ def _read_organization_logo_serialize(
@validate_call
- def remove_org_connection(
+ def get_organization_role_users(
self,
- organization_code: Annotated[StrictStr, Field(description="The unique code for the organization.")],
- connection_id: Annotated[StrictStr, Field(description="The identifier for the connection.")],
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ role_id: Annotated[StrictStr, Field(description="The role's public id.")],
+ page_size: Annotated[Optional[StrictInt], Field(description="Number of results per page. Defaults to 10 if parameter not sent.")] = None,
+ next_token: Annotated[Optional[StrictStr], Field(description="A string to get the next page of results if there are more results.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -7404,15 +7399,19 @@ def remove_org_connection(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> SuccessResponse:
- """Remove connection
+ ) -> GetOrganizationRoleUsersResponse:
+ """List organization role users
- Turn off an auth connection for an organization delete:organization_connections
+ Get users that have a given role within a specific organization. read:organization_user_roles
- :param organization_code: The unique code for the organization. (required)
- :type organization_code: str
- :param connection_id: The identifier for the connection. (required)
- :type connection_id: str
+ :param org_code: The organization's code. (required)
+ :type org_code: str
+ :param role_id: The role's public id. (required)
+ :type role_id: str
+ :param page_size: Number of results per page. Defaults to 10 if parameter not sent.
+ :type page_size: int
+ :param next_token: A string to get the next page of results if there are more results.
+ :type next_token: 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
@@ -7435,9 +7434,11 @@ def remove_org_connection(
:return: Returns the result object.
""" # noqa: E501
- _param = self._remove_org_connection_serialize(
- organization_code=organization_code,
- connection_id=connection_id,
+ _param = self._get_organization_role_users_serialize(
+ org_code=org_code,
+ role_id=role_id,
+ page_size=page_size,
+ next_token=next_token,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -7445,10 +7446,10 @@ def remove_org_connection(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "SuccessResponse",
+ '200': "GetOrganizationRoleUsersResponse",
'400': "ErrorResponse",
- '403': "ErrorResponse",
- '429': "ErrorResponse",
+ '403': None,
+ '429': None,
}
response_data = self.api_client.call_api(
*_param,
@@ -7462,10 +7463,12 @@ def remove_org_connection(
@validate_call
- def remove_org_connection_with_http_info(
+ def get_organization_role_users_with_http_info(
self,
- organization_code: Annotated[StrictStr, Field(description="The unique code for the organization.")],
- connection_id: Annotated[StrictStr, Field(description="The identifier for the connection.")],
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ role_id: Annotated[StrictStr, Field(description="The role's public id.")],
+ page_size: Annotated[Optional[StrictInt], Field(description="Number of results per page. Defaults to 10 if parameter not sent.")] = None,
+ next_token: Annotated[Optional[StrictStr], Field(description="A string to get the next page of results if there are more results.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -7478,15 +7481,19 @@ def remove_org_connection_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[SuccessResponse]:
- """Remove connection
+ ) -> ApiResponse[GetOrganizationRoleUsersResponse]:
+ """List organization role users
- Turn off an auth connection for an organization delete:organization_connections
+ Get users that have a given role within a specific organization. read:organization_user_roles
- :param organization_code: The unique code for the organization. (required)
- :type organization_code: str
- :param connection_id: The identifier for the connection. (required)
- :type connection_id: str
+ :param org_code: The organization's code. (required)
+ :type org_code: str
+ :param role_id: The role's public id. (required)
+ :type role_id: str
+ :param page_size: Number of results per page. Defaults to 10 if parameter not sent.
+ :type page_size: int
+ :param next_token: A string to get the next page of results if there are more results.
+ :type next_token: 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
@@ -7509,9 +7516,11 @@ def remove_org_connection_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._remove_org_connection_serialize(
- organization_code=organization_code,
- connection_id=connection_id,
+ _param = self._get_organization_role_users_serialize(
+ org_code=org_code,
+ role_id=role_id,
+ page_size=page_size,
+ next_token=next_token,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -7519,10 +7528,10 @@ def remove_org_connection_with_http_info(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "SuccessResponse",
+ '200': "GetOrganizationRoleUsersResponse",
'400': "ErrorResponse",
- '403': "ErrorResponse",
- '429': "ErrorResponse",
+ '403': None,
+ '429': None,
}
response_data = self.api_client.call_api(
*_param,
@@ -7536,10 +7545,12 @@ def remove_org_connection_with_http_info(
@validate_call
- def remove_org_connection_without_preload_content(
+ def get_organization_role_users_without_preload_content(
self,
- organization_code: Annotated[StrictStr, Field(description="The unique code for the organization.")],
- connection_id: Annotated[StrictStr, Field(description="The identifier for the connection.")],
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ role_id: Annotated[StrictStr, Field(description="The role's public id.")],
+ page_size: Annotated[Optional[StrictInt], Field(description="Number of results per page. Defaults to 10 if parameter not sent.")] = None,
+ next_token: Annotated[Optional[StrictStr], Field(description="A string to get the next page of results if there are more results.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -7553,14 +7564,18 @@ def remove_org_connection_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """Remove connection
+ """List organization role users
- Turn off an auth connection for an organization delete:organization_connections
+ Get users that have a given role within a specific organization. read:organization_user_roles
- :param organization_code: The unique code for the organization. (required)
- :type organization_code: str
- :param connection_id: The identifier for the connection. (required)
- :type connection_id: str
+ :param org_code: The organization's code. (required)
+ :type org_code: str
+ :param role_id: The role's public id. (required)
+ :type role_id: str
+ :param page_size: Number of results per page. Defaults to 10 if parameter not sent.
+ :type page_size: int
+ :param next_token: A string to get the next page of results if there are more results.
+ :type next_token: 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
@@ -7583,9 +7598,11 @@ def remove_org_connection_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._remove_org_connection_serialize(
- organization_code=organization_code,
- connection_id=connection_id,
+ _param = self._get_organization_role_users_serialize(
+ org_code=org_code,
+ role_id=role_id,
+ page_size=page_size,
+ next_token=next_token,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -7593,10 +7610,10 @@ def remove_org_connection_without_preload_content(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "SuccessResponse",
+ '200': "GetOrganizationRoleUsersResponse",
'400': "ErrorResponse",
- '403': "ErrorResponse",
- '429': "ErrorResponse",
+ '403': None,
+ '429': None,
}
response_data = self.api_client.call_api(
*_param,
@@ -7605,10 +7622,12 @@ def remove_org_connection_without_preload_content(
return response_data.response
- def _remove_org_connection_serialize(
+ def _get_organization_role_users_serialize(
self,
- organization_code,
- connection_id,
+ org_code,
+ role_id,
+ page_size,
+ next_token,
_request_auth,
_content_type,
_headers,
@@ -7630,11 +7649,19 @@ def _remove_org_connection_serialize(
_body_params: Optional[bytes] = None
# process the path parameters
- if organization_code is not None:
- _path_params['organization_code'] = organization_code
- if connection_id is not None:
- _path_params['connection_id'] = connection_id
+ if org_code is not None:
+ _path_params['org_code'] = org_code
+ if role_id is not None:
+ _path_params['role_id'] = role_id
# process the query parameters
+ if page_size is not None:
+
+ _query_params.append(('page_size', page_size))
+
+ if next_token is not None:
+
+ _query_params.append(('next_token', next_token))
+
# process the header parameters
# process the form parameters
# process the body parameter
@@ -7644,7 +7671,8 @@ def _remove_org_connection_serialize(
if 'Accept' not in _header_params:
_header_params['Accept'] = self.api_client.select_header_accept(
[
- 'application/json'
+ 'application/json',
+ 'application/json; charset=utf-8'
]
)
@@ -7655,8 +7683,8 @@ def _remove_org_connection_serialize(
]
return self.api_client.param_serialize(
- method='DELETE',
- resource_path='/api/v1/organizations/{organization_code}/connections/{connection_id}',
+ method='GET',
+ resource_path='/api/v1/organizations/{org_code}/roles/{role_id}/users',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -7673,10 +7701,11 @@ def _remove_org_connection_serialize(
@validate_call
- def remove_organization_user(
+ def get_organization_user_permissions(
self,
org_code: Annotated[StrictStr, Field(description="The organization's code.")],
user_id: Annotated[StrictStr, Field(description="The user's id.")],
+ expand: Annotated[Optional[StrictStr], Field(description="Additional data to include in the response. Allowed value: \"roles\".")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -7689,15 +7718,17 @@ def remove_organization_user(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> SuccessResponse:
- """Remove Organization User
+ ) -> GetOrganizationsUserPermissionsResponse:
+ """List Organization User Permissions
- Remove user from an organization. delete:organization_users
+ Get permissions for an organization user. read:organization_user_permissions
:param org_code: The organization's code. (required)
:type org_code: str
:param user_id: The user's id. (required)
:type user_id: str
+ :param expand: Additional data to include in the response. Allowed value: \"roles\".
+ :type expand: 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
@@ -7720,9 +7751,10 @@ def remove_organization_user(
:return: Returns the result object.
""" # noqa: E501
- _param = self._remove_organization_user_serialize(
+ _param = self._get_organization_user_permissions_serialize(
org_code=org_code,
user_id=user_id,
+ expand=expand,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -7730,8 +7762,7 @@ def remove_organization_user(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "SuccessResponse",
- '400': "ErrorResponse",
+ '200': "GetOrganizationsUserPermissionsResponse",
'403': None,
'429': None,
}
@@ -7747,10 +7778,11 @@ def remove_organization_user(
@validate_call
- def remove_organization_user_with_http_info(
+ def get_organization_user_permissions_with_http_info(
self,
org_code: Annotated[StrictStr, Field(description="The organization's code.")],
user_id: Annotated[StrictStr, Field(description="The user's id.")],
+ expand: Annotated[Optional[StrictStr], Field(description="Additional data to include in the response. Allowed value: \"roles\".")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -7763,15 +7795,17 @@ def remove_organization_user_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[SuccessResponse]:
- """Remove Organization User
+ ) -> ApiResponse[GetOrganizationsUserPermissionsResponse]:
+ """List Organization User Permissions
- Remove user from an organization. delete:organization_users
+ Get permissions for an organization user. read:organization_user_permissions
:param org_code: The organization's code. (required)
:type org_code: str
:param user_id: The user's id. (required)
:type user_id: str
+ :param expand: Additional data to include in the response. Allowed value: \"roles\".
+ :type expand: 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
@@ -7794,9 +7828,10 @@ def remove_organization_user_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._remove_organization_user_serialize(
+ _param = self._get_organization_user_permissions_serialize(
org_code=org_code,
user_id=user_id,
+ expand=expand,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -7804,8 +7839,7 @@ def remove_organization_user_with_http_info(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "SuccessResponse",
- '400': "ErrorResponse",
+ '200': "GetOrganizationsUserPermissionsResponse",
'403': None,
'429': None,
}
@@ -7821,10 +7855,11 @@ def remove_organization_user_with_http_info(
@validate_call
- def remove_organization_user_without_preload_content(
+ def get_organization_user_permissions_without_preload_content(
self,
org_code: Annotated[StrictStr, Field(description="The organization's code.")],
user_id: Annotated[StrictStr, Field(description="The user's id.")],
+ expand: Annotated[Optional[StrictStr], Field(description="Additional data to include in the response. Allowed value: \"roles\".")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -7838,14 +7873,2092 @@ def remove_organization_user_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """Remove Organization User
+ """List Organization User Permissions
+
+ Get permissions for an organization user. read:organization_user_permissions
+
+ :param org_code: The organization's code. (required)
+ :type org_code: str
+ :param user_id: The user's id. (required)
+ :type user_id: str
+ :param expand: Additional data to include in the response. Allowed value: \"roles\".
+ :type expand: 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
+ (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_organization_user_permissions_serialize(
+ org_code=org_code,
+ user_id=user_id,
+ expand=expand,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "GetOrganizationsUserPermissionsResponse",
+ '403': None,
+ '429': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_organization_user_permissions_serialize(
+ self,
+ org_code,
+ user_id,
+ expand,
+ _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 org_code is not None:
+ _path_params['org_code'] = org_code
+ if user_id is not None:
+ _path_params['user_id'] = user_id
+ # process the query parameters
+ if expand is not None:
+
+ _query_params.append(('expand', expand))
+
+ # 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',
+ 'application/json; charset=utf-8'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'kindeBearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/api/v1/organizations/{org_code}/users/{user_id}/permissions',
+ 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_organization_user_roles(
+ self,
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ user_id: Annotated[StrictStr, Field(description="The user's id.")],
+ _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,
+ ) -> GetOrganizationsUserRolesResponse:
+ """List Organization User Roles
+
+ Get roles for an organization user. read:organization_user_roles
+
+ :param org_code: The organization's code. (required)
+ :type org_code: str
+ :param user_id: The user's id. (required)
+ :type user_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
+ (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_organization_user_roles_serialize(
+ org_code=org_code,
+ user_id=user_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "GetOrganizationsUserRolesResponse",
+ '403': None,
+ '429': None,
+ }
+ 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_organization_user_roles_with_http_info(
+ self,
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ user_id: Annotated[StrictStr, Field(description="The user's id.")],
+ _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[GetOrganizationsUserRolesResponse]:
+ """List Organization User Roles
+
+ Get roles for an organization user. read:organization_user_roles
+
+ :param org_code: The organization's code. (required)
+ :type org_code: str
+ :param user_id: The user's id. (required)
+ :type user_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
+ (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_organization_user_roles_serialize(
+ org_code=org_code,
+ user_id=user_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "GetOrganizationsUserRolesResponse",
+ '403': None,
+ '429': None,
+ }
+ 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_organization_user_roles_without_preload_content(
+ self,
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ user_id: Annotated[StrictStr, Field(description="The user's id.")],
+ _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:
+ """List Organization User Roles
+
+ Get roles for an organization user. read:organization_user_roles
+
+ :param org_code: The organization's code. (required)
+ :type org_code: str
+ :param user_id: The user's id. (required)
+ :type user_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
+ (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_organization_user_roles_serialize(
+ org_code=org_code,
+ user_id=user_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "GetOrganizationsUserRolesResponse",
+ '403': None,
+ '429': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_organization_user_roles_serialize(
+ self,
+ org_code,
+ user_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 org_code is not None:
+ _path_params['org_code'] = org_code
+ if user_id is not None:
+ _path_params['user_id'] = user_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',
+ 'application/json; charset=utf-8'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'kindeBearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/api/v1/organizations/{org_code}/users/{user_id}/roles',
+ 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_organization_users(
+ self,
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ sort: Annotated[Optional[StrictStr], Field(description="Field and order to sort the result by.")] = None,
+ page_size: Annotated[Optional[StrictInt], Field(description="Number of results per page. Defaults to 10 if parameter not sent.")] = None,
+ next_token: Annotated[Optional[StrictStr], Field(description="A string to get the next page of results if there are more results.")] = None,
+ permissions: Annotated[Optional[StrictStr], Field(description="Filter by user permissions comma separated (where all match)")] = None,
+ roles: Annotated[Optional[StrictStr], Field(description="Filter by user roles comma separated (where all match)")] = None,
+ _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,
+ ) -> GetOrganizationUsersResponse:
+ """Get organization users
+
+ Get user details for all members of an organization. read:organization_users
+
+ :param org_code: The organization's code. (required)
+ :type org_code: str
+ :param sort: Field and order to sort the result by.
+ :type sort: str
+ :param page_size: Number of results per page. Defaults to 10 if parameter not sent.
+ :type page_size: int
+ :param next_token: A string to get the next page of results if there are more results.
+ :type next_token: str
+ :param permissions: Filter by user permissions comma separated (where all match)
+ :type permissions: str
+ :param roles: Filter by user roles comma separated (where all match)
+ :type roles: 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
+ (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_organization_users_serialize(
+ org_code=org_code,
+ sort=sort,
+ page_size=page_size,
+ next_token=next_token,
+ permissions=permissions,
+ roles=roles,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "GetOrganizationUsersResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ 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_organization_users_with_http_info(
+ self,
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ sort: Annotated[Optional[StrictStr], Field(description="Field and order to sort the result by.")] = None,
+ page_size: Annotated[Optional[StrictInt], Field(description="Number of results per page. Defaults to 10 if parameter not sent.")] = None,
+ next_token: Annotated[Optional[StrictStr], Field(description="A string to get the next page of results if there are more results.")] = None,
+ permissions: Annotated[Optional[StrictStr], Field(description="Filter by user permissions comma separated (where all match)")] = None,
+ roles: Annotated[Optional[StrictStr], Field(description="Filter by user roles comma separated (where all match)")] = None,
+ _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[GetOrganizationUsersResponse]:
+ """Get organization users
+
+ Get user details for all members of an organization. read:organization_users
+
+ :param org_code: The organization's code. (required)
+ :type org_code: str
+ :param sort: Field and order to sort the result by.
+ :type sort: str
+ :param page_size: Number of results per page. Defaults to 10 if parameter not sent.
+ :type page_size: int
+ :param next_token: A string to get the next page of results if there are more results.
+ :type next_token: str
+ :param permissions: Filter by user permissions comma separated (where all match)
+ :type permissions: str
+ :param roles: Filter by user roles comma separated (where all match)
+ :type roles: 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
+ (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_organization_users_serialize(
+ org_code=org_code,
+ sort=sort,
+ page_size=page_size,
+ next_token=next_token,
+ permissions=permissions,
+ roles=roles,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "GetOrganizationUsersResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ 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_organization_users_without_preload_content(
+ self,
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ sort: Annotated[Optional[StrictStr], Field(description="Field and order to sort the result by.")] = None,
+ page_size: Annotated[Optional[StrictInt], Field(description="Number of results per page. Defaults to 10 if parameter not sent.")] = None,
+ next_token: Annotated[Optional[StrictStr], Field(description="A string to get the next page of results if there are more results.")] = None,
+ permissions: Annotated[Optional[StrictStr], Field(description="Filter by user permissions comma separated (where all match)")] = None,
+ roles: Annotated[Optional[StrictStr], Field(description="Filter by user roles comma separated (where all match)")] = None,
+ _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 organization users
+
+ Get user details for all members of an organization. read:organization_users
+
+ :param org_code: The organization's code. (required)
+ :type org_code: str
+ :param sort: Field and order to sort the result by.
+ :type sort: str
+ :param page_size: Number of results per page. Defaults to 10 if parameter not sent.
+ :type page_size: int
+ :param next_token: A string to get the next page of results if there are more results.
+ :type next_token: str
+ :param permissions: Filter by user permissions comma separated (where all match)
+ :type permissions: str
+ :param roles: Filter by user roles comma separated (where all match)
+ :type roles: 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
+ (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_organization_users_serialize(
+ org_code=org_code,
+ sort=sort,
+ page_size=page_size,
+ next_token=next_token,
+ permissions=permissions,
+ roles=roles,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "GetOrganizationUsersResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_organization_users_serialize(
+ self,
+ org_code,
+ sort,
+ page_size,
+ next_token,
+ permissions,
+ roles,
+ _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 org_code is not None:
+ _path_params['org_code'] = org_code
+ # process the query parameters
+ if sort is not None:
+
+ _query_params.append(('sort', sort))
+
+ if page_size is not None:
+
+ _query_params.append(('page_size', page_size))
+
+ if next_token is not None:
+
+ _query_params.append(('next_token', next_token))
+
+ if permissions is not None:
+
+ _query_params.append(('permissions', permissions))
+
+ if roles is not None:
+
+ _query_params.append(('roles', roles))
+
+ # 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] = [
+ 'kindeBearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/api/v1/organizations/{org_code}/users',
+ 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_organizations(
+ self,
+ sort: Annotated[Optional[StrictStr], Field(description="Field and order to sort the result by.")] = None,
+ page_size: Annotated[Optional[StrictInt], Field(description="Number of results per page. Defaults to 10 if parameter not sent.")] = None,
+ next_token: Annotated[Optional[StrictStr], Field(description="A string to get the next page of results if there are more results.")] = None,
+ _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,
+ ) -> GetOrganizationsResponse:
+ """Get organizations
+
+ Get a list of organizations. read:organizations
+
+ :param sort: Field and order to sort the result by.
+ :type sort: str
+ :param page_size: Number of results per page. Defaults to 10 if parameter not sent.
+ :type page_size: int
+ :param next_token: A string to get the next page of results if there are more results.
+ :type next_token: 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
+ (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_organizations_serialize(
+ sort=sort,
+ page_size=page_size,
+ next_token=next_token,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "GetOrganizationsResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ 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_organizations_with_http_info(
+ self,
+ sort: Annotated[Optional[StrictStr], Field(description="Field and order to sort the result by.")] = None,
+ page_size: Annotated[Optional[StrictInt], Field(description="Number of results per page. Defaults to 10 if parameter not sent.")] = None,
+ next_token: Annotated[Optional[StrictStr], Field(description="A string to get the next page of results if there are more results.")] = None,
+ _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[GetOrganizationsResponse]:
+ """Get organizations
+
+ Get a list of organizations. read:organizations
+
+ :param sort: Field and order to sort the result by.
+ :type sort: str
+ :param page_size: Number of results per page. Defaults to 10 if parameter not sent.
+ :type page_size: int
+ :param next_token: A string to get the next page of results if there are more results.
+ :type next_token: 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
+ (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_organizations_serialize(
+ sort=sort,
+ page_size=page_size,
+ next_token=next_token,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "GetOrganizationsResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ 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_organizations_without_preload_content(
+ self,
+ sort: Annotated[Optional[StrictStr], Field(description="Field and order to sort the result by.")] = None,
+ page_size: Annotated[Optional[StrictInt], Field(description="Number of results per page. Defaults to 10 if parameter not sent.")] = None,
+ next_token: Annotated[Optional[StrictStr], Field(description="A string to get the next page of results if there are more results.")] = None,
+ _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 organizations
+
+ Get a list of organizations. read:organizations
+
+ :param sort: Field and order to sort the result by.
+ :type sort: str
+ :param page_size: Number of results per page. Defaults to 10 if parameter not sent.
+ :type page_size: int
+ :param next_token: A string to get the next page of results if there are more results.
+ :type next_token: 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
+ (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_organizations_serialize(
+ sort=sort,
+ page_size=page_size,
+ next_token=next_token,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "GetOrganizationsResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_organizations_serialize(
+ self,
+ sort,
+ page_size,
+ next_token,
+ _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
+ # process the query parameters
+ if sort is not None:
+
+ _query_params.append(('sort', sort))
+
+ if page_size is not None:
+
+ _query_params.append(('page_size', page_size))
+
+ if next_token is not None:
+
+ _query_params.append(('next_token', next_token))
+
+ # 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] = [
+ 'kindeBearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/api/v1/organizations',
+ 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 read_organization_logo(
+ self,
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ _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,
+ ) -> ReadLogoResponse:
+ """Read organization logo details
+
+ Read organization logo details read:organizations
+
+ :param org_code: The organization's code. (required)
+ :type org_code: 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
+ (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._read_organization_logo_serialize(
+ org_code=org_code,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ReadLogoResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ 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 read_organization_logo_with_http_info(
+ self,
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ _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[ReadLogoResponse]:
+ """Read organization logo details
+
+ Read organization logo details read:organizations
+
+ :param org_code: The organization's code. (required)
+ :type org_code: 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
+ (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._read_organization_logo_serialize(
+ org_code=org_code,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ReadLogoResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ 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 read_organization_logo_without_preload_content(
+ self,
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ _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:
+ """Read organization logo details
+
+ Read organization logo details read:organizations
+
+ :param org_code: The organization's code. (required)
+ :type org_code: 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
+ (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._read_organization_logo_serialize(
+ org_code=org_code,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "ReadLogoResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _read_organization_logo_serialize(
+ self,
+ org_code,
+ _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 org_code is not None:
+ _path_params['org_code'] = org_code
+ # 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] = [
+ 'kindeBearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/api/v1/organizations/{org_code}/logos',
+ 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 remove_org_connection(
+ self,
+ organization_code: Annotated[StrictStr, Field(description="The unique code for the organization.")],
+ connection_id: Annotated[StrictStr, Field(description="The identifier for the connection.")],
+ _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,
+ ) -> SuccessResponse:
+ """Remove connection
+
+ Turn off an auth connection for an organization delete:organization_connections
+
+ :param organization_code: The unique code for the organization. (required)
+ :type organization_code: str
+ :param connection_id: The identifier for the connection. (required)
+ :type connection_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
+ (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._remove_org_connection_serialize(
+ organization_code=organization_code,
+ connection_id=connection_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SuccessResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ 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 remove_org_connection_with_http_info(
+ self,
+ organization_code: Annotated[StrictStr, Field(description="The unique code for the organization.")],
+ connection_id: Annotated[StrictStr, Field(description="The identifier for the connection.")],
+ _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[SuccessResponse]:
+ """Remove connection
+
+ Turn off an auth connection for an organization delete:organization_connections
+
+ :param organization_code: The unique code for the organization. (required)
+ :type organization_code: str
+ :param connection_id: The identifier for the connection. (required)
+ :type connection_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
+ (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._remove_org_connection_serialize(
+ organization_code=organization_code,
+ connection_id=connection_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SuccessResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ 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 remove_org_connection_without_preload_content(
+ self,
+ organization_code: Annotated[StrictStr, Field(description="The unique code for the organization.")],
+ connection_id: Annotated[StrictStr, Field(description="The identifier for the connection.")],
+ _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:
+ """Remove connection
+
+ Turn off an auth connection for an organization delete:organization_connections
+
+ :param organization_code: The unique code for the organization. (required)
+ :type organization_code: str
+ :param connection_id: The identifier for the connection. (required)
+ :type connection_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
+ (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._remove_org_connection_serialize(
+ organization_code=organization_code,
+ connection_id=connection_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SuccessResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _remove_org_connection_serialize(
+ self,
+ organization_code,
+ connection_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 organization_code is not None:
+ _path_params['organization_code'] = organization_code
+ if connection_id is not None:
+ _path_params['connection_id'] = connection_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] = [
+ 'kindeBearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/api/v1/organizations/{organization_code}/connections/{connection_id}',
+ 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 remove_organization_user(
+ self,
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ user_id: Annotated[StrictStr, Field(description="The user's id.")],
+ _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,
+ ) -> SuccessResponse:
+ """Remove Organization User
+
+ Remove user from an organization. delete:organization_users
+
+ :param org_code: The organization's code. (required)
+ :type org_code: str
+ :param user_id: The user's id. (required)
+ :type user_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
+ (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._remove_organization_user_serialize(
+ org_code=org_code,
+ user_id=user_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SuccessResponse",
+ '400': "ErrorResponse",
+ '403': None,
+ '429': None,
+ }
+ 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 remove_organization_user_with_http_info(
+ self,
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ user_id: Annotated[StrictStr, Field(description="The user's id.")],
+ _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[SuccessResponse]:
+ """Remove Organization User
+
+ Remove user from an organization. delete:organization_users
+
+ :param org_code: The organization's code. (required)
+ :type org_code: str
+ :param user_id: The user's id. (required)
+ :type user_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
+ (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._remove_organization_user_serialize(
+ org_code=org_code,
+ user_id=user_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SuccessResponse",
+ '400': "ErrorResponse",
+ '403': None,
+ '429': None,
+ }
+ 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 remove_organization_user_without_preload_content(
+ self,
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ user_id: Annotated[StrictStr, Field(description="The user's id.")],
+ _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:
+ """Remove Organization User
Remove user from an organization. delete:organization_users
- :param org_code: The organization's code. (required)
+ :param org_code: The organization's code. (required)
+ :type org_code: str
+ :param user_id: The user's id. (required)
+ :type user_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
+ (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._remove_organization_user_serialize(
+ org_code=org_code,
+ user_id=user_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SuccessResponse",
+ '400': "ErrorResponse",
+ '403': None,
+ '429': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _remove_organization_user_serialize(
+ self,
+ org_code,
+ user_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 org_code is not None:
+ _path_params['org_code'] = org_code
+ if user_id is not None:
+ _path_params['user_id'] = user_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',
+ 'application/json; charset=utf-8'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'kindeBearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/api/v1/organizations/{org_code}/users/{user_id}',
+ 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 replace_organization_mfa(
+ self,
+ org_code: Annotated[StrictStr, Field(description="The identifier for the organization")],
+ replace_organization_mfa_request: Annotated[ReplaceOrganizationMFARequest, Field(description="MFA details.")],
+ _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,
+ ) -> SuccessResponse:
+ """Replace Organization MFA Configuration
+
+ Replace Organization MFA Configuration. update:organization_mfa
+
+ :param org_code: The identifier for the organization (required)
+ :type org_code: str
+ :param replace_organization_mfa_request: MFA details. (required)
+ :type replace_organization_mfa_request: ReplaceOrganizationMFARequest
+ :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._replace_organization_mfa_serialize(
+ org_code=org_code,
+ replace_organization_mfa_request=replace_organization_mfa_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SuccessResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ 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 replace_organization_mfa_with_http_info(
+ self,
+ org_code: Annotated[StrictStr, Field(description="The identifier for the organization")],
+ replace_organization_mfa_request: Annotated[ReplaceOrganizationMFARequest, Field(description="MFA details.")],
+ _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[SuccessResponse]:
+ """Replace Organization MFA Configuration
+
+ Replace Organization MFA Configuration. update:organization_mfa
+
+ :param org_code: The identifier for the organization (required)
+ :type org_code: str
+ :param replace_organization_mfa_request: MFA details. (required)
+ :type replace_organization_mfa_request: ReplaceOrganizationMFARequest
+ :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._replace_organization_mfa_serialize(
+ org_code=org_code,
+ replace_organization_mfa_request=replace_organization_mfa_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SuccessResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
+ }
+ 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 replace_organization_mfa_without_preload_content(
+ self,
+ org_code: Annotated[StrictStr, Field(description="The identifier for the organization")],
+ replace_organization_mfa_request: Annotated[ReplaceOrganizationMFARequest, Field(description="MFA details.")],
+ _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:
+ """Replace Organization MFA Configuration
+
+ Replace Organization MFA Configuration. update:organization_mfa
+
+ :param org_code: The identifier for the organization (required)
:type org_code: str
- :param user_id: The user's id. (required)
- :type user_id: str
+ :param replace_organization_mfa_request: MFA details. (required)
+ :type replace_organization_mfa_request: ReplaceOrganizationMFARequest
: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
@@ -7868,9 +9981,9 @@ def remove_organization_user_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._remove_organization_user_serialize(
+ _param = self._replace_organization_mfa_serialize(
org_code=org_code,
- user_id=user_id,
+ replace_organization_mfa_request=replace_organization_mfa_request,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -7880,8 +9993,8 @@ def remove_organization_user_without_preload_content(
_response_types_map: Dict[str, Optional[str]] = {
'200': "SuccessResponse",
'400': "ErrorResponse",
- '403': None,
- '429': None,
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
@@ -7890,10 +10003,10 @@ def remove_organization_user_without_preload_content(
return response_data.response
- def _remove_organization_user_serialize(
+ def _replace_organization_mfa_serialize(
self,
org_code,
- user_id,
+ replace_organization_mfa_request,
_request_auth,
_content_type,
_headers,
@@ -7917,23 +10030,35 @@ def _remove_organization_user_serialize(
# process the path parameters
if org_code is not None:
_path_params['org_code'] = org_code
- if user_id is not None:
- _path_params['user_id'] = user_id
# process the query parameters
# process the header parameters
# process the form parameters
# process the body parameter
+ if replace_organization_mfa_request is not None:
+ _body_params = replace_organization_mfa_request
# set the HTTP header `Accept`
if 'Accept' not in _header_params:
_header_params['Accept'] = self.api_client.select_header_accept(
[
- 'application/json',
- 'application/json; charset=utf-8'
+ 'application/json'
]
)
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
# authentication setting
_auth_settings: List[str] = [
@@ -7941,8 +10066,8 @@ def _remove_organization_user_serialize(
]
return self.api_client.param_serialize(
- method='DELETE',
- resource_path='/api/v1/organizations/{org_code}/users/{user_id}',
+ method='PUT',
+ resource_path='/api/v1/organizations/{org_code}/mfa',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -7959,10 +10084,11 @@ def _remove_organization_user_serialize(
@validate_call
- def replace_organization_mfa(
+ def reset_org_user_mfa(
self,
- org_code: Annotated[StrictStr, Field(description="The identifier for the organization")],
- replace_organization_mfa_request: Annotated[ReplaceOrganizationMFARequest, Field(description="MFA details.")],
+ org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
+ user_id: Annotated[StrictStr, Field(description="The identifier for the user")],
+ factor_id: Annotated[StrictStr, Field(description="The identifier for the MFA factor")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -7976,14 +10102,16 @@ def replace_organization_mfa(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> SuccessResponse:
- """Replace Organization MFA Configuration
+ """Reset specific organization MFA for a user
- Replace Organization MFA Configuration. update:organization_mfa
+ Reset a specific organization MFA factor for a user. delete:organization_user_mfa
- :param org_code: The identifier for the organization (required)
+ :param org_code: The identifier for the organization. (required)
:type org_code: str
- :param replace_organization_mfa_request: MFA details. (required)
- :type replace_organization_mfa_request: ReplaceOrganizationMFARequest
+ :param user_id: The identifier for the user (required)
+ :type user_id: str
+ :param factor_id: The identifier for the MFA factor (required)
+ :type factor_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
@@ -8006,9 +10134,10 @@ def replace_organization_mfa(
:return: Returns the result object.
""" # noqa: E501
- _param = self._replace_organization_mfa_serialize(
+ _param = self._reset_org_user_mfa_serialize(
org_code=org_code,
- replace_organization_mfa_request=replace_organization_mfa_request,
+ user_id=user_id,
+ factor_id=factor_id,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -8019,6 +10148,7 @@ def replace_organization_mfa(
'200': "SuccessResponse",
'400': "ErrorResponse",
'403': "ErrorResponse",
+ '404': "NotFoundResponse",
'429': "ErrorResponse",
}
response_data = self.api_client.call_api(
@@ -8033,10 +10163,11 @@ def replace_organization_mfa(
@validate_call
- def replace_organization_mfa_with_http_info(
+ def reset_org_user_mfa_with_http_info(
self,
- org_code: Annotated[StrictStr, Field(description="The identifier for the organization")],
- replace_organization_mfa_request: Annotated[ReplaceOrganizationMFARequest, Field(description="MFA details.")],
+ org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
+ user_id: Annotated[StrictStr, Field(description="The identifier for the user")],
+ factor_id: Annotated[StrictStr, Field(description="The identifier for the MFA factor")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -8050,14 +10181,16 @@ def replace_organization_mfa_with_http_info(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> ApiResponse[SuccessResponse]:
- """Replace Organization MFA Configuration
+ """Reset specific organization MFA for a user
- Replace Organization MFA Configuration. update:organization_mfa
+ Reset a specific organization MFA factor for a user. delete:organization_user_mfa
- :param org_code: The identifier for the organization (required)
+ :param org_code: The identifier for the organization. (required)
:type org_code: str
- :param replace_organization_mfa_request: MFA details. (required)
- :type replace_organization_mfa_request: ReplaceOrganizationMFARequest
+ :param user_id: The identifier for the user (required)
+ :type user_id: str
+ :param factor_id: The identifier for the MFA factor (required)
+ :type factor_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
@@ -8080,9 +10213,10 @@ def replace_organization_mfa_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._replace_organization_mfa_serialize(
+ _param = self._reset_org_user_mfa_serialize(
org_code=org_code,
- replace_organization_mfa_request=replace_organization_mfa_request,
+ user_id=user_id,
+ factor_id=factor_id,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -8093,6 +10227,7 @@ def replace_organization_mfa_with_http_info(
'200': "SuccessResponse",
'400': "ErrorResponse",
'403': "ErrorResponse",
+ '404': "NotFoundResponse",
'429': "ErrorResponse",
}
response_data = self.api_client.call_api(
@@ -8107,10 +10242,11 @@ def replace_organization_mfa_with_http_info(
@validate_call
- def replace_organization_mfa_without_preload_content(
+ def reset_org_user_mfa_without_preload_content(
self,
- org_code: Annotated[StrictStr, Field(description="The identifier for the organization")],
- replace_organization_mfa_request: Annotated[ReplaceOrganizationMFARequest, Field(description="MFA details.")],
+ org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
+ user_id: Annotated[StrictStr, Field(description="The identifier for the user")],
+ factor_id: Annotated[StrictStr, Field(description="The identifier for the MFA factor")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -8124,14 +10260,16 @@ def replace_organization_mfa_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """Replace Organization MFA Configuration
+ """Reset specific organization MFA for a user
- Replace Organization MFA Configuration. update:organization_mfa
+ Reset a specific organization MFA factor for a user. delete:organization_user_mfa
- :param org_code: The identifier for the organization (required)
+ :param org_code: The identifier for the organization. (required)
:type org_code: str
- :param replace_organization_mfa_request: MFA details. (required)
- :type replace_organization_mfa_request: ReplaceOrganizationMFARequest
+ :param user_id: The identifier for the user (required)
+ :type user_id: str
+ :param factor_id: The identifier for the MFA factor (required)
+ :type factor_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
@@ -8154,9 +10292,10 @@ def replace_organization_mfa_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._replace_organization_mfa_serialize(
+ _param = self._reset_org_user_mfa_serialize(
org_code=org_code,
- replace_organization_mfa_request=replace_organization_mfa_request,
+ user_id=user_id,
+ factor_id=factor_id,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -8167,6 +10306,7 @@ def replace_organization_mfa_without_preload_content(
'200': "SuccessResponse",
'400': "ErrorResponse",
'403': "ErrorResponse",
+ '404': "NotFoundResponse",
'429': "ErrorResponse",
}
response_data = self.api_client.call_api(
@@ -8176,10 +10316,11 @@ def replace_organization_mfa_without_preload_content(
return response_data.response
- def _replace_organization_mfa_serialize(
+ def _reset_org_user_mfa_serialize(
self,
org_code,
- replace_organization_mfa_request,
+ user_id,
+ factor_id,
_request_auth,
_content_type,
_headers,
@@ -8203,12 +10344,14 @@ def _replace_organization_mfa_serialize(
# process the path parameters
if org_code is not None:
_path_params['org_code'] = org_code
+ if user_id is not None:
+ _path_params['user_id'] = user_id
+ if factor_id is not None:
+ _path_params['factor_id'] = factor_id
# process the query parameters
# process the header parameters
# process the form parameters
# process the body parameter
- if replace_organization_mfa_request is not None:
- _body_params = replace_organization_mfa_request
# set the HTTP header `Accept`
@@ -8219,19 +10362,6 @@ def _replace_organization_mfa_serialize(
]
)
- # set the HTTP header `Content-Type`
- if _content_type:
- _header_params['Content-Type'] = _content_type
- else:
- _default_content_type = (
- self.api_client.select_header_content_type(
- [
- 'application/json'
- ]
- )
- )
- if _default_content_type is not None:
- _header_params['Content-Type'] = _default_content_type
# authentication setting
_auth_settings: List[str] = [
@@ -8239,8 +10369,8 @@ def _replace_organization_mfa_serialize(
]
return self.api_client.param_serialize(
- method='PUT',
- resource_path='/api/v1/organizations/{org_code}/mfa',
+ method='DELETE',
+ resource_path='/api/v1/organizations/{org_code}/users/{user_id}/mfa/{factor_id}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -8257,11 +10387,10 @@ def _replace_organization_mfa_serialize(
@validate_call
- def reset_org_user_mfa(
+ def reset_org_user_mfa_all(
self,
org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
user_id: Annotated[StrictStr, Field(description="The identifier for the user")],
- factor_id: Annotated[StrictStr, Field(description="The identifier for the MFA factor")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -8275,16 +10404,14 @@ def reset_org_user_mfa(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> SuccessResponse:
- """Reset specific organization MFA for a user
+ """Reset all organization MFA for a user
- Reset a specific organization MFA factor for a user. delete:organization_user_mfa
+ Reset all organization MFA factors for a user. delete:organization_user_mfa
:param org_code: The identifier for the organization. (required)
:type org_code: str
:param user_id: The identifier for the user (required)
:type user_id: str
- :param factor_id: The identifier for the MFA factor (required)
- :type factor_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
@@ -8307,10 +10434,9 @@ def reset_org_user_mfa(
:return: Returns the result object.
""" # noqa: E501
- _param = self._reset_org_user_mfa_serialize(
+ _param = self._reset_org_user_mfa_all_serialize(
org_code=org_code,
user_id=user_id,
- factor_id=factor_id,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -8336,11 +10462,10 @@ def reset_org_user_mfa(
@validate_call
- def reset_org_user_mfa_with_http_info(
+ def reset_org_user_mfa_all_with_http_info(
self,
org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
user_id: Annotated[StrictStr, Field(description="The identifier for the user")],
- factor_id: Annotated[StrictStr, Field(description="The identifier for the MFA factor")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -8354,16 +10479,14 @@ def reset_org_user_mfa_with_http_info(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> ApiResponse[SuccessResponse]:
- """Reset specific organization MFA for a user
+ """Reset all organization MFA for a user
- Reset a specific organization MFA factor for a user. delete:organization_user_mfa
+ Reset all organization MFA factors for a user. delete:organization_user_mfa
:param org_code: The identifier for the organization. (required)
:type org_code: str
:param user_id: The identifier for the user (required)
:type user_id: str
- :param factor_id: The identifier for the MFA factor (required)
- :type factor_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
@@ -8386,10 +10509,9 @@ def reset_org_user_mfa_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._reset_org_user_mfa_serialize(
+ _param = self._reset_org_user_mfa_all_serialize(
org_code=org_code,
user_id=user_id,
- factor_id=factor_id,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -8415,11 +10537,10 @@ def reset_org_user_mfa_with_http_info(
@validate_call
- def reset_org_user_mfa_without_preload_content(
+ def reset_org_user_mfa_all_without_preload_content(
self,
org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
user_id: Annotated[StrictStr, Field(description="The identifier for the user")],
- factor_id: Annotated[StrictStr, Field(description="The identifier for the MFA factor")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -8433,16 +10554,14 @@ def reset_org_user_mfa_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """Reset specific organization MFA for a user
+ """Reset all organization MFA for a user
- Reset a specific organization MFA factor for a user. delete:organization_user_mfa
+ Reset all organization MFA factors for a user. delete:organization_user_mfa
:param org_code: The identifier for the organization. (required)
:type org_code: str
:param user_id: The identifier for the user (required)
:type user_id: str
- :param factor_id: The identifier for the MFA factor (required)
- :type factor_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
@@ -8465,10 +10584,9 @@ def reset_org_user_mfa_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._reset_org_user_mfa_serialize(
+ _param = self._reset_org_user_mfa_all_serialize(
org_code=org_code,
user_id=user_id,
- factor_id=factor_id,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -8489,11 +10607,10 @@ def reset_org_user_mfa_without_preload_content(
return response_data.response
- def _reset_org_user_mfa_serialize(
+ def _reset_org_user_mfa_all_serialize(
self,
org_code,
user_id,
- factor_id,
_request_auth,
_content_type,
_headers,
@@ -8519,8 +10636,6 @@ def _reset_org_user_mfa_serialize(
_path_params['org_code'] = org_code
if user_id is not None:
_path_params['user_id'] = user_id
- if factor_id is not None:
- _path_params['factor_id'] = factor_id
# process the query parameters
# process the header parameters
# process the form parameters
@@ -8543,7 +10658,7 @@ def _reset_org_user_mfa_serialize(
return self.api_client.param_serialize(
method='DELETE',
- resource_path='/api/v1/organizations/{org_code}/users/{user_id}/mfa/{factor_id}',
+ resource_path='/api/v1/organizations/{org_code}/users/{user_id}/mfa',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -8560,10 +10675,11 @@ def _reset_org_user_mfa_serialize(
@validate_call
- def reset_org_user_mfa_all(
+ def update_organization(
self,
org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
- user_id: Annotated[StrictStr, Field(description="The identifier for the user")],
+ expand: Annotated[Optional[StrictStr], Field(description="Additional data to include in the response. Allowed value: \"billing\".")] = None,
+ update_organization_request: Annotated[Optional[UpdateOrganizationRequest], Field(description="Organization details.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -8577,14 +10693,16 @@ def reset_org_user_mfa_all(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> SuccessResponse:
- """Reset all organization MFA for a user
+ """Update Organization
- Reset all organization MFA factors for a user. delete:organization_user_mfa
+ Update an organization. update:organizations
:param org_code: The identifier for the organization. (required)
:type org_code: str
- :param user_id: The identifier for the user (required)
- :type user_id: str
+ :param expand: Additional data to include in the response. Allowed value: \"billing\".
+ :type expand: str
+ :param update_organization_request: Organization details.
+ :type update_organization_request: UpdateOrganizationRequest
: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
@@ -8607,9 +10725,10 @@ def reset_org_user_mfa_all(
:return: Returns the result object.
""" # noqa: E501
- _param = self._reset_org_user_mfa_all_serialize(
+ _param = self._update_organization_serialize(
org_code=org_code,
- user_id=user_id,
+ expand=expand,
+ update_organization_request=update_organization_request,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -8620,7 +10739,6 @@ def reset_org_user_mfa_all(
'200': "SuccessResponse",
'400': "ErrorResponse",
'403': "ErrorResponse",
- '404': "NotFoundResponse",
'429': "ErrorResponse",
}
response_data = self.api_client.call_api(
@@ -8635,10 +10753,11 @@ def reset_org_user_mfa_all(
@validate_call
- def reset_org_user_mfa_all_with_http_info(
+ def update_organization_with_http_info(
self,
org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
- user_id: Annotated[StrictStr, Field(description="The identifier for the user")],
+ expand: Annotated[Optional[StrictStr], Field(description="Additional data to include in the response. Allowed value: \"billing\".")] = None,
+ update_organization_request: Annotated[Optional[UpdateOrganizationRequest], Field(description="Organization details.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -8652,14 +10771,16 @@ def reset_org_user_mfa_all_with_http_info(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> ApiResponse[SuccessResponse]:
- """Reset all organization MFA for a user
+ """Update Organization
- Reset all organization MFA factors for a user. delete:organization_user_mfa
+ Update an organization. update:organizations
:param org_code: The identifier for the organization. (required)
:type org_code: str
- :param user_id: The identifier for the user (required)
- :type user_id: str
+ :param expand: Additional data to include in the response. Allowed value: \"billing\".
+ :type expand: str
+ :param update_organization_request: Organization details.
+ :type update_organization_request: UpdateOrganizationRequest
: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
@@ -8682,9 +10803,10 @@ def reset_org_user_mfa_all_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._reset_org_user_mfa_all_serialize(
+ _param = self._update_organization_serialize(
org_code=org_code,
- user_id=user_id,
+ expand=expand,
+ update_organization_request=update_organization_request,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -8695,7 +10817,6 @@ def reset_org_user_mfa_all_with_http_info(
'200': "SuccessResponse",
'400': "ErrorResponse",
'403': "ErrorResponse",
- '404': "NotFoundResponse",
'429': "ErrorResponse",
}
response_data = self.api_client.call_api(
@@ -8710,10 +10831,11 @@ def reset_org_user_mfa_all_with_http_info(
@validate_call
- def reset_org_user_mfa_all_without_preload_content(
+ def update_organization_without_preload_content(
self,
org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
- user_id: Annotated[StrictStr, Field(description="The identifier for the user")],
+ expand: Annotated[Optional[StrictStr], Field(description="Additional data to include in the response. Allowed value: \"billing\".")] = None,
+ update_organization_request: Annotated[Optional[UpdateOrganizationRequest], Field(description="Organization details.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -8727,14 +10849,16 @@ def reset_org_user_mfa_all_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """Reset all organization MFA for a user
+ """Update Organization
- Reset all organization MFA factors for a user. delete:organization_user_mfa
+ Update an organization. update:organizations
:param org_code: The identifier for the organization. (required)
:type org_code: str
- :param user_id: The identifier for the user (required)
- :type user_id: str
+ :param expand: Additional data to include in the response. Allowed value: \"billing\".
+ :type expand: str
+ :param update_organization_request: Organization details.
+ :type update_organization_request: UpdateOrganizationRequest
: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
@@ -8757,9 +10881,10 @@ def reset_org_user_mfa_all_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._reset_org_user_mfa_all_serialize(
+ _param = self._update_organization_serialize(
org_code=org_code,
- user_id=user_id,
+ expand=expand,
+ update_organization_request=update_organization_request,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -8770,7 +10895,6 @@ def reset_org_user_mfa_all_without_preload_content(
'200': "SuccessResponse",
'400': "ErrorResponse",
'403': "ErrorResponse",
- '404': "NotFoundResponse",
'429': "ErrorResponse",
}
response_data = self.api_client.call_api(
@@ -8780,10 +10904,11 @@ def reset_org_user_mfa_all_without_preload_content(
return response_data.response
- def _reset_org_user_mfa_all_serialize(
+ def _update_organization_serialize(
self,
org_code,
- user_id,
+ expand,
+ update_organization_request,
_request_auth,
_content_type,
_headers,
@@ -8807,12 +10932,16 @@ def _reset_org_user_mfa_all_serialize(
# process the path parameters
if org_code is not None:
_path_params['org_code'] = org_code
- if user_id is not None:
- _path_params['user_id'] = user_id
# process the query parameters
+ if expand is not None:
+
+ _query_params.append(('expand', expand))
+
# process the header parameters
# process the form parameters
# process the body parameter
+ if update_organization_request is not None:
+ _body_params = update_organization_request
# set the HTTP header `Accept`
@@ -8823,6 +10952,19 @@ def _reset_org_user_mfa_all_serialize(
]
)
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
# authentication setting
_auth_settings: List[str] = [
@@ -8830,8 +10972,8 @@ def _reset_org_user_mfa_all_serialize(
]
return self.api_client.param_serialize(
- method='DELETE',
- resource_path='/api/v1/organizations/{org_code}/users/{user_id}/mfa',
+ method='PATCH',
+ resource_path='/api/v1/organization/{org_code}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -8848,11 +10990,11 @@ def _reset_org_user_mfa_all_serialize(
@validate_call
- def update_organization(
+ def update_organization_feature_flag_override(
self,
- org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
- expand: Annotated[Optional[StrictStr], Field(description="Specify additional data to retrieve. Use \"billing\".")] = None,
- update_organization_request: Annotated[Optional[UpdateOrganizationRequest], Field(description="Organization details.")] = None,
+ org_code: Annotated[StrictStr, Field(description="The identifier for the organization")],
+ feature_flag_key: Annotated[StrictStr, Field(description="The identifier for the feature flag")],
+ value: Annotated[StrictStr, Field(description="Override value")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -8866,16 +11008,16 @@ def update_organization(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> SuccessResponse:
- """Update Organization
+ """Update Organization Feature Flag Override
- Update an organization. update:organizations
+ Update organization feature flag override. update:organization_feature_flags
- :param org_code: The identifier for the organization. (required)
+ :param org_code: The identifier for the organization (required)
:type org_code: str
- :param expand: Specify additional data to retrieve. Use \"billing\".
- :type expand: str
- :param update_organization_request: Organization details.
- :type update_organization_request: UpdateOrganizationRequest
+ :param feature_flag_key: The identifier for the feature flag (required)
+ :type feature_flag_key: str
+ :param value: Override value (required)
+ :type value: 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
@@ -8898,10 +11040,10 @@ def update_organization(
:return: Returns the result object.
""" # noqa: E501
- _param = self._update_organization_serialize(
+ _param = self._update_organization_feature_flag_override_serialize(
org_code=org_code,
- expand=expand,
- update_organization_request=update_organization_request,
+ feature_flag_key=feature_flag_key,
+ value=value,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -8911,8 +11053,8 @@ def update_organization(
_response_types_map: Dict[str, Optional[str]] = {
'200': "SuccessResponse",
'400': "ErrorResponse",
- '403': "ErrorResponse",
- '429': "ErrorResponse",
+ '403': None,
+ '429': None,
}
response_data = self.api_client.call_api(
*_param,
@@ -8926,11 +11068,11 @@ def update_organization(
@validate_call
- def update_organization_with_http_info(
+ def update_organization_feature_flag_override_with_http_info(
self,
- org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
- expand: Annotated[Optional[StrictStr], Field(description="Specify additional data to retrieve. Use \"billing\".")] = None,
- update_organization_request: Annotated[Optional[UpdateOrganizationRequest], Field(description="Organization details.")] = None,
+ org_code: Annotated[StrictStr, Field(description="The identifier for the organization")],
+ feature_flag_key: Annotated[StrictStr, Field(description="The identifier for the feature flag")],
+ value: Annotated[StrictStr, Field(description="Override value")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -8944,16 +11086,16 @@ def update_organization_with_http_info(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> ApiResponse[SuccessResponse]:
- """Update Organization
+ """Update Organization Feature Flag Override
- Update an organization. update:organizations
+ Update organization feature flag override. update:organization_feature_flags
- :param org_code: The identifier for the organization. (required)
+ :param org_code: The identifier for the organization (required)
:type org_code: str
- :param expand: Specify additional data to retrieve. Use \"billing\".
- :type expand: str
- :param update_organization_request: Organization details.
- :type update_organization_request: UpdateOrganizationRequest
+ :param feature_flag_key: The identifier for the feature flag (required)
+ :type feature_flag_key: str
+ :param value: Override value (required)
+ :type value: 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
@@ -8976,10 +11118,10 @@ def update_organization_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._update_organization_serialize(
+ _param = self._update_organization_feature_flag_override_serialize(
org_code=org_code,
- expand=expand,
- update_organization_request=update_organization_request,
+ feature_flag_key=feature_flag_key,
+ value=value,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -8989,8 +11131,8 @@ def update_organization_with_http_info(
_response_types_map: Dict[str, Optional[str]] = {
'200': "SuccessResponse",
'400': "ErrorResponse",
- '403': "ErrorResponse",
- '429': "ErrorResponse",
+ '403': None,
+ '429': None,
}
response_data = self.api_client.call_api(
*_param,
@@ -9004,11 +11146,11 @@ def update_organization_with_http_info(
@validate_call
- def update_organization_without_preload_content(
+ def update_organization_feature_flag_override_without_preload_content(
self,
- org_code: Annotated[StrictStr, Field(description="The identifier for the organization.")],
- expand: Annotated[Optional[StrictStr], Field(description="Specify additional data to retrieve. Use \"billing\".")] = None,
- update_organization_request: Annotated[Optional[UpdateOrganizationRequest], Field(description="Organization details.")] = None,
+ org_code: Annotated[StrictStr, Field(description="The identifier for the organization")],
+ feature_flag_key: Annotated[StrictStr, Field(description="The identifier for the feature flag")],
+ value: Annotated[StrictStr, Field(description="Override value")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -9022,16 +11164,16 @@ def update_organization_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """Update Organization
+ """Update Organization Feature Flag Override
- Update an organization. update:organizations
+ Update organization feature flag override. update:organization_feature_flags
- :param org_code: The identifier for the organization. (required)
+ :param org_code: The identifier for the organization (required)
:type org_code: str
- :param expand: Specify additional data to retrieve. Use \"billing\".
- :type expand: str
- :param update_organization_request: Organization details.
- :type update_organization_request: UpdateOrganizationRequest
+ :param feature_flag_key: The identifier for the feature flag (required)
+ :type feature_flag_key: str
+ :param value: Override value (required)
+ :type value: 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
@@ -9054,10 +11196,10 @@ def update_organization_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._update_organization_serialize(
+ _param = self._update_organization_feature_flag_override_serialize(
org_code=org_code,
- expand=expand,
- update_organization_request=update_organization_request,
+ feature_flag_key=feature_flag_key,
+ value=value,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -9067,8 +11209,8 @@ def update_organization_without_preload_content(
_response_types_map: Dict[str, Optional[str]] = {
'200': "SuccessResponse",
'400': "ErrorResponse",
- '403': "ErrorResponse",
- '429': "ErrorResponse",
+ '403': None,
+ '429': None,
}
response_data = self.api_client.call_api(
*_param,
@@ -9077,11 +11219,11 @@ def update_organization_without_preload_content(
return response_data.response
- def _update_organization_serialize(
+ def _update_organization_feature_flag_override_serialize(
self,
org_code,
- expand,
- update_organization_request,
+ feature_flag_key,
+ value,
_request_auth,
_content_type,
_headers,
@@ -9105,39 +11247,27 @@ def _update_organization_serialize(
# process the path parameters
if org_code is not None:
_path_params['org_code'] = org_code
+ if feature_flag_key is not None:
+ _path_params['feature_flag_key'] = feature_flag_key
# process the query parameters
- if expand is not None:
+ if value is not None:
- _query_params.append(('expand', expand))
+ _query_params.append(('value', value))
# process the header parameters
# process the form parameters
# process the body parameter
- if update_organization_request is not None:
- _body_params = update_organization_request
# set the HTTP header `Accept`
if 'Accept' not in _header_params:
_header_params['Accept'] = self.api_client.select_header_accept(
[
- 'application/json'
+ 'application/json',
+ 'application/json; charset=utf-8'
]
)
- # set the HTTP header `Content-Type`
- if _content_type:
- _header_params['Content-Type'] = _content_type
- else:
- _default_content_type = (
- self.api_client.select_header_content_type(
- [
- 'application/json'
- ]
- )
- )
- if _default_content_type is not None:
- _header_params['Content-Type'] = _default_content_type
# authentication setting
_auth_settings: List[str] = [
@@ -9146,7 +11276,7 @@ def _update_organization_serialize(
return self.api_client.param_serialize(
method='PATCH',
- resource_path='/api/v1/organization/{org_code}',
+ resource_path='/api/v1/organizations/{org_code}/feature_flags/{feature_flag_key}',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -9163,11 +11293,10 @@ def _update_organization_serialize(
@validate_call
- def update_organization_feature_flag_override(
+ def update_organization_passkey(
self,
- org_code: Annotated[StrictStr, Field(description="The identifier for the organization")],
- feature_flag_key: Annotated[StrictStr, Field(description="The identifier for the feature flag")],
- value: Annotated[StrictStr, Field(description="Override value")],
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ update_organization_passkey_request: Annotated[UpdateOrganizationPasskeyRequest, Field(description="Organization passkey settings.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -9180,17 +11309,15 @@ def update_organization_feature_flag_override(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> SuccessResponse:
- """Update Organization Feature Flag Override
+ ) -> UpdateOrganizationPasskey200Response:
+ """Update organization passkey settings
- Update organization feature flag override. update:organization_feature_flags
+ Update passkey settings for an organization. Set `is_override_environment_passkey_settings` to `false` to revert to the environment default without providing a policy. update:organization_passkey
- :param org_code: The identifier for the organization (required)
+ :param org_code: The organization's code. (required)
:type org_code: str
- :param feature_flag_key: The identifier for the feature flag (required)
- :type feature_flag_key: str
- :param value: Override value (required)
- :type value: str
+ :param update_organization_passkey_request: Organization passkey settings. (required)
+ :type update_organization_passkey_request: UpdateOrganizationPasskeyRequest
: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
@@ -9213,10 +11340,9 @@ def update_organization_feature_flag_override(
:return: Returns the result object.
""" # noqa: E501
- _param = self._update_organization_feature_flag_override_serialize(
+ _param = self._update_organization_passkey_serialize(
org_code=org_code,
- feature_flag_key=feature_flag_key,
- value=value,
+ update_organization_passkey_request=update_organization_passkey_request,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -9224,10 +11350,10 @@ def update_organization_feature_flag_override(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "SuccessResponse",
+ '200': "UpdateOrganizationPasskey200Response",
'400': "ErrorResponse",
- '403': None,
- '429': None,
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
@@ -9241,11 +11367,10 @@ def update_organization_feature_flag_override(
@validate_call
- def update_organization_feature_flag_override_with_http_info(
+ def update_organization_passkey_with_http_info(
self,
- org_code: Annotated[StrictStr, Field(description="The identifier for the organization")],
- feature_flag_key: Annotated[StrictStr, Field(description="The identifier for the feature flag")],
- value: Annotated[StrictStr, Field(description="Override value")],
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ update_organization_passkey_request: Annotated[UpdateOrganizationPasskeyRequest, Field(description="Organization passkey settings.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -9258,17 +11383,15 @@ def update_organization_feature_flag_override_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[SuccessResponse]:
- """Update Organization Feature Flag Override
+ ) -> ApiResponse[UpdateOrganizationPasskey200Response]:
+ """Update organization passkey settings
- Update organization feature flag override. update:organization_feature_flags
+ Update passkey settings for an organization. Set `is_override_environment_passkey_settings` to `false` to revert to the environment default without providing a policy. update:organization_passkey
- :param org_code: The identifier for the organization (required)
+ :param org_code: The organization's code. (required)
:type org_code: str
- :param feature_flag_key: The identifier for the feature flag (required)
- :type feature_flag_key: str
- :param value: Override value (required)
- :type value: str
+ :param update_organization_passkey_request: Organization passkey settings. (required)
+ :type update_organization_passkey_request: UpdateOrganizationPasskeyRequest
: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
@@ -9291,10 +11414,9 @@ def update_organization_feature_flag_override_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._update_organization_feature_flag_override_serialize(
+ _param = self._update_organization_passkey_serialize(
org_code=org_code,
- feature_flag_key=feature_flag_key,
- value=value,
+ update_organization_passkey_request=update_organization_passkey_request,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -9302,10 +11424,10 @@ def update_organization_feature_flag_override_with_http_info(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "SuccessResponse",
+ '200': "UpdateOrganizationPasskey200Response",
'400': "ErrorResponse",
- '403': None,
- '429': None,
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
@@ -9319,11 +11441,10 @@ def update_organization_feature_flag_override_with_http_info(
@validate_call
- def update_organization_feature_flag_override_without_preload_content(
+ def update_organization_passkey_without_preload_content(
self,
- org_code: Annotated[StrictStr, Field(description="The identifier for the organization")],
- feature_flag_key: Annotated[StrictStr, Field(description="The identifier for the feature flag")],
- value: Annotated[StrictStr, Field(description="Override value")],
+ org_code: Annotated[StrictStr, Field(description="The organization's code.")],
+ update_organization_passkey_request: Annotated[UpdateOrganizationPasskeyRequest, Field(description="Organization passkey settings.")],
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -9337,16 +11458,14 @@ def update_organization_feature_flag_override_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """Update Organization Feature Flag Override
+ """Update organization passkey settings
- Update organization feature flag override. update:organization_feature_flags
+ Update passkey settings for an organization. Set `is_override_environment_passkey_settings` to `false` to revert to the environment default without providing a policy. update:organization_passkey
- :param org_code: The identifier for the organization (required)
+ :param org_code: The organization's code. (required)
:type org_code: str
- :param feature_flag_key: The identifier for the feature flag (required)
- :type feature_flag_key: str
- :param value: Override value (required)
- :type value: str
+ :param update_organization_passkey_request: Organization passkey settings. (required)
+ :type update_organization_passkey_request: UpdateOrganizationPasskeyRequest
: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
@@ -9369,10 +11488,9 @@ def update_organization_feature_flag_override_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._update_organization_feature_flag_override_serialize(
+ _param = self._update_organization_passkey_serialize(
org_code=org_code,
- feature_flag_key=feature_flag_key,
- value=value,
+ update_organization_passkey_request=update_organization_passkey_request,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -9380,10 +11498,10 @@ def update_organization_feature_flag_override_without_preload_content(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "SuccessResponse",
+ '200': "UpdateOrganizationPasskey200Response",
'400': "ErrorResponse",
- '403': None,
- '429': None,
+ '403': "ErrorResponse",
+ '429': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
@@ -9392,11 +11510,10 @@ def update_organization_feature_flag_override_without_preload_content(
return response_data.response
- def _update_organization_feature_flag_override_serialize(
+ def _update_organization_passkey_serialize(
self,
org_code,
- feature_flag_key,
- value,
+ update_organization_passkey_request,
_request_auth,
_content_type,
_headers,
@@ -9420,27 +11537,35 @@ def _update_organization_feature_flag_override_serialize(
# process the path parameters
if org_code is not None:
_path_params['org_code'] = org_code
- if feature_flag_key is not None:
- _path_params['feature_flag_key'] = feature_flag_key
# process the query parameters
- if value is not None:
-
- _query_params.append(('value', value))
-
# process the header parameters
# process the form parameters
# process the body parameter
+ if update_organization_passkey_request is not None:
+ _body_params = update_organization_passkey_request
# set the HTTP header `Accept`
if 'Accept' not in _header_params:
_header_params['Accept'] = self.api_client.select_header_accept(
[
- 'application/json',
- 'application/json; charset=utf-8'
+ 'application/json'
]
)
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
# authentication setting
_auth_settings: List[str] = [
@@ -9448,8 +11573,8 @@ def _update_organization_feature_flag_override_serialize(
]
return self.api_client.param_serialize(
- method='PATCH',
- resource_path='/api/v1/organizations/{org_code}/feature_flags/{feature_flag_key}',
+ method='PUT',
+ resource_path='/api/v1/organizations/{org_code}/passkey',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
diff --git a/kinde_sdk/management/api/roles_api.py b/kinde_sdk/management/api/roles_api.py
index f712b993..51c8afa5 100644
--- a/kinde_sdk/management/api/roles_api.py
+++ b/kinde_sdk/management/api/roles_api.py
@@ -26,12 +26,17 @@
from kinde_sdk.management.models.create_roles_response import CreateRolesResponse
from kinde_sdk.management.models.delete_role_scope_response import DeleteRoleScopeResponse
from kinde_sdk.management.models.get_role_response import GetRoleResponse
+from kinde_sdk.management.models.get_role_users_response import GetRoleUsersResponse
from kinde_sdk.management.models.get_roles_response import GetRolesResponse
+from kinde_sdk.management.models.get_system_permissions_response import GetSystemPermissionsResponse
from kinde_sdk.management.models.role_permissions_response import RolePermissionsResponse
from kinde_sdk.management.models.role_scopes_response import RoleScopesResponse
+from kinde_sdk.management.models.role_system_permissions_response import RoleSystemPermissionsResponse
from kinde_sdk.management.models.success_response import SuccessResponse
from kinde_sdk.management.models.update_role_permissions_request import UpdateRolePermissionsRequest
from kinde_sdk.management.models.update_role_permissions_response import UpdateRolePermissionsResponse
+from kinde_sdk.management.models.update_role_system_permissions_request import UpdateRoleSystemPermissionsRequest
+from kinde_sdk.management.models.update_role_system_permissions_response import UpdateRoleSystemPermissionsResponse
from kinde_sdk.management.models.update_roles_request import UpdateRolesRequest
from kinde_sdk.management.api_client import ApiClient, RequestSerialized
@@ -2052,8 +2057,9 @@ def _get_role_scopes_serialize(
@validate_call
- def get_roles(
+ def get_role_system_permissions(
self,
+ role_id: Annotated[StrictStr, Field(description="The role's public id.")],
sort: Annotated[Optional[StrictStr], Field(description="Field and order to sort the result by.")] = None,
page_size: Annotated[Optional[StrictInt], Field(description="Number of results per page. Defaults to 10 if parameter not sent.")] = None,
next_token: Annotated[Optional[StrictStr], Field(description="A string to get the next page of results if there are more results.")] = None,
@@ -2069,11 +2075,13 @@ def get_roles(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> GetRolesResponse:
- """List roles
+ ) -> RoleSystemPermissionsResponse:
+ """Get role system permissions
- The returned list can be sorted by role name or role ID in ascending or descending order. The number of records to return at a time can also be controlled using the `page_size` query string parameter. read:roles
+ Get system permissions for a role. System permissions control what organization users can do in the self-serve portal. read:role_system_permissions
+ :param role_id: The role's public id. (required)
+ :type role_id: str
:param sort: Field and order to sort the result by.
:type sort: str
:param page_size: Number of results per page. Defaults to 10 if parameter not sent.
@@ -2102,7 +2110,8 @@ def get_roles(
:return: Returns the result object.
""" # noqa: E501
- _param = self._get_roles_serialize(
+ _param = self._get_role_system_permissions_serialize(
+ role_id=role_id,
sort=sort,
page_size=page_size,
next_token=next_token,
@@ -2113,10 +2122,10 @@ def get_roles(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "GetRolesResponse",
+ '200': "RoleSystemPermissionsResponse",
'400': "ErrorResponse",
- '403': "ErrorResponse",
- '429': "ErrorResponse",
+ '403': None,
+ '429': None,
}
response_data = self.api_client.call_api(
*_param,
@@ -2130,8 +2139,9 @@ def get_roles(
@validate_call
- def get_roles_with_http_info(
+ def get_role_system_permissions_with_http_info(
self,
+ role_id: Annotated[StrictStr, Field(description="The role's public id.")],
sort: Annotated[Optional[StrictStr], Field(description="Field and order to sort the result by.")] = None,
page_size: Annotated[Optional[StrictInt], Field(description="Number of results per page. Defaults to 10 if parameter not sent.")] = None,
next_token: Annotated[Optional[StrictStr], Field(description="A string to get the next page of results if there are more results.")] = None,
@@ -2147,11 +2157,13 @@ def get_roles_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[GetRolesResponse]:
- """List roles
+ ) -> ApiResponse[RoleSystemPermissionsResponse]:
+ """Get role system permissions
- The returned list can be sorted by role name or role ID in ascending or descending order. The number of records to return at a time can also be controlled using the `page_size` query string parameter. read:roles
+ Get system permissions for a role. System permissions control what organization users can do in the self-serve portal. read:role_system_permissions
+ :param role_id: The role's public id. (required)
+ :type role_id: str
:param sort: Field and order to sort the result by.
:type sort: str
:param page_size: Number of results per page. Defaults to 10 if parameter not sent.
@@ -2180,7 +2192,8 @@ def get_roles_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._get_roles_serialize(
+ _param = self._get_role_system_permissions_serialize(
+ role_id=role_id,
sort=sort,
page_size=page_size,
next_token=next_token,
@@ -2191,10 +2204,10 @@ def get_roles_with_http_info(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "GetRolesResponse",
+ '200': "RoleSystemPermissionsResponse",
'400': "ErrorResponse",
- '403': "ErrorResponse",
- '429': "ErrorResponse",
+ '403': None,
+ '429': None,
}
response_data = self.api_client.call_api(
*_param,
@@ -2208,8 +2221,9 @@ def get_roles_with_http_info(
@validate_call
- def get_roles_without_preload_content(
+ def get_role_system_permissions_without_preload_content(
self,
+ role_id: Annotated[StrictStr, Field(description="The role's public id.")],
sort: Annotated[Optional[StrictStr], Field(description="Field and order to sort the result by.")] = None,
page_size: Annotated[Optional[StrictInt], Field(description="Number of results per page. Defaults to 10 if parameter not sent.")] = None,
next_token: Annotated[Optional[StrictStr], Field(description="A string to get the next page of results if there are more results.")] = None,
@@ -2226,10 +2240,12 @@ def get_roles_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """List roles
+ """Get role system permissions
- The returned list can be sorted by role name or role ID in ascending or descending order. The number of records to return at a time can also be controlled using the `page_size` query string parameter. read:roles
+ Get system permissions for a role. System permissions control what organization users can do in the self-serve portal. read:role_system_permissions
+ :param role_id: The role's public id. (required)
+ :type role_id: str
:param sort: Field and order to sort the result by.
:type sort: str
:param page_size: Number of results per page. Defaults to 10 if parameter not sent.
@@ -2258,7 +2274,8 @@ def get_roles_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._get_roles_serialize(
+ _param = self._get_role_system_permissions_serialize(
+ role_id=role_id,
sort=sort,
page_size=page_size,
next_token=next_token,
@@ -2269,10 +2286,10 @@ def get_roles_without_preload_content(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "GetRolesResponse",
+ '200': "RoleSystemPermissionsResponse",
'400': "ErrorResponse",
- '403': "ErrorResponse",
- '429': "ErrorResponse",
+ '403': None,
+ '429': None,
}
response_data = self.api_client.call_api(
*_param,
@@ -2281,8 +2298,9 @@ def get_roles_without_preload_content(
return response_data.response
- def _get_roles_serialize(
+ def _get_role_system_permissions_serialize(
self,
+ role_id,
sort,
page_size,
next_token,
@@ -2307,6 +2325,8 @@ def _get_roles_serialize(
_body_params: Optional[bytes] = None
# process the path parameters
+ if role_id is not None:
+ _path_params['role_id'] = role_id
# process the query parameters
if sort is not None:
@@ -2329,7 +2349,8 @@ def _get_roles_serialize(
if 'Accept' not in _header_params:
_header_params['Accept'] = self.api_client.select_header_accept(
[
- 'application/json'
+ 'application/json',
+ 'application/json; charset=utf-8'
]
)
@@ -2341,7 +2362,7 @@ def _get_roles_serialize(
return self.api_client.param_serialize(
method='GET',
- resource_path='/api/v1/roles',
+ resource_path='/api/v1/roles/{role_id}/system_permissions',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -2358,10 +2379,11 @@ def _get_roles_serialize(
@validate_call
- def remove_role_permission(
+ def get_role_users(
self,
role_id: Annotated[StrictStr, Field(description="The role's public id.")],
- permission_id: Annotated[StrictStr, Field(description="The permission's public id.")],
+ page_size: Annotated[Optional[StrictInt], Field(description="Number of results per page. Defaults to 10 if parameter not sent.")] = None,
+ next_token: Annotated[Optional[StrictStr], Field(description="A string to get the next page of results if there are more results.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2374,15 +2396,17 @@ def remove_role_permission(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> SuccessResponse:
- """Remove role permission
+ ) -> GetRoleUsersResponse:
+ """List role users
- Remove a permission from a role. delete:role_permissions
+ Get users that have a given role, across all organizations. Each user entry includes the organization codes where they hold that role. read:organization_user_roles
:param role_id: The role's public id. (required)
:type role_id: str
- :param permission_id: The permission's public id. (required)
- :type permission_id: str
+ :param page_size: Number of results per page. Defaults to 10 if parameter not sent.
+ :type page_size: int
+ :param next_token: A string to get the next page of results if there are more results.
+ :type next_token: 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
@@ -2405,9 +2429,10 @@ def remove_role_permission(
:return: Returns the result object.
""" # noqa: E501
- _param = self._remove_role_permission_serialize(
+ _param = self._get_role_users_serialize(
role_id=role_id,
- permission_id=permission_id,
+ page_size=page_size,
+ next_token=next_token,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -2415,7 +2440,7 @@ def remove_role_permission(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "SuccessResponse",
+ '200': "GetRoleUsersResponse",
'400': "ErrorResponse",
'403': None,
'429': None,
@@ -2432,10 +2457,11 @@ def remove_role_permission(
@validate_call
- def remove_role_permission_with_http_info(
+ def get_role_users_with_http_info(
self,
role_id: Annotated[StrictStr, Field(description="The role's public id.")],
- permission_id: Annotated[StrictStr, Field(description="The permission's public id.")],
+ page_size: Annotated[Optional[StrictInt], Field(description="Number of results per page. Defaults to 10 if parameter not sent.")] = None,
+ next_token: Annotated[Optional[StrictStr], Field(description="A string to get the next page of results if there are more results.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2448,15 +2474,17 @@ def remove_role_permission_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[SuccessResponse]:
- """Remove role permission
+ ) -> ApiResponse[GetRoleUsersResponse]:
+ """List role users
- Remove a permission from a role. delete:role_permissions
+ Get users that have a given role, across all organizations. Each user entry includes the organization codes where they hold that role. read:organization_user_roles
:param role_id: The role's public id. (required)
:type role_id: str
- :param permission_id: The permission's public id. (required)
- :type permission_id: str
+ :param page_size: Number of results per page. Defaults to 10 if parameter not sent.
+ :type page_size: int
+ :param next_token: A string to get the next page of results if there are more results.
+ :type next_token: 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
@@ -2479,9 +2507,10 @@ def remove_role_permission_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._remove_role_permission_serialize(
+ _param = self._get_role_users_serialize(
role_id=role_id,
- permission_id=permission_id,
+ page_size=page_size,
+ next_token=next_token,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -2489,7 +2518,7 @@ def remove_role_permission_with_http_info(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "SuccessResponse",
+ '200': "GetRoleUsersResponse",
'400': "ErrorResponse",
'403': None,
'429': None,
@@ -2506,10 +2535,11 @@ def remove_role_permission_with_http_info(
@validate_call
- def remove_role_permission_without_preload_content(
+ def get_role_users_without_preload_content(
self,
role_id: Annotated[StrictStr, Field(description="The role's public id.")],
- permission_id: Annotated[StrictStr, Field(description="The permission's public id.")],
+ page_size: Annotated[Optional[StrictInt], Field(description="Number of results per page. Defaults to 10 if parameter not sent.")] = None,
+ next_token: Annotated[Optional[StrictStr], Field(description="A string to get the next page of results if there are more results.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2523,14 +2553,16 @@ def remove_role_permission_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """Remove role permission
+ """List role users
- Remove a permission from a role. delete:role_permissions
+ Get users that have a given role, across all organizations. Each user entry includes the organization codes where they hold that role. read:organization_user_roles
:param role_id: The role's public id. (required)
:type role_id: str
- :param permission_id: The permission's public id. (required)
- :type permission_id: str
+ :param page_size: Number of results per page. Defaults to 10 if parameter not sent.
+ :type page_size: int
+ :param next_token: A string to get the next page of results if there are more results.
+ :type next_token: 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
@@ -2553,9 +2585,10 @@ def remove_role_permission_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._remove_role_permission_serialize(
+ _param = self._get_role_users_serialize(
role_id=role_id,
- permission_id=permission_id,
+ page_size=page_size,
+ next_token=next_token,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -2563,7 +2596,7 @@ def remove_role_permission_without_preload_content(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "SuccessResponse",
+ '200': "GetRoleUsersResponse",
'400': "ErrorResponse",
'403': None,
'429': None,
@@ -2575,10 +2608,11 @@ def remove_role_permission_without_preload_content(
return response_data.response
- def _remove_role_permission_serialize(
+ def _get_role_users_serialize(
self,
role_id,
- permission_id,
+ page_size,
+ next_token,
_request_auth,
_content_type,
_headers,
@@ -2602,9 +2636,15 @@ def _remove_role_permission_serialize(
# process the path parameters
if role_id is not None:
_path_params['role_id'] = role_id
- if permission_id is not None:
- _path_params['permission_id'] = permission_id
# process the query parameters
+ if page_size is not None:
+
+ _query_params.append(('page_size', page_size))
+
+ if next_token is not None:
+
+ _query_params.append(('next_token', next_token))
+
# process the header parameters
# process the form parameters
# process the body parameter
@@ -2626,8 +2666,8 @@ def _remove_role_permission_serialize(
]
return self.api_client.param_serialize(
- method='DELETE',
- resource_path='/api/v1/roles/{role_id}/permissions/{permission_id}',
+ method='GET',
+ resource_path='/api/v1/roles/{role_id}/users',
path_params=_path_params,
query_params=_query_params,
header_params=_header_params,
@@ -2644,10 +2684,11 @@ def _remove_role_permission_serialize(
@validate_call
- def update_role_permissions(
+ def get_roles(
self,
- role_id: Annotated[StrictStr, Field(description="The identifier for the role.")],
- update_role_permissions_request: UpdateRolePermissionsRequest,
+ sort: Annotated[Optional[StrictStr], Field(description="Field and order to sort the result by.")] = None,
+ page_size: Annotated[Optional[StrictInt], Field(description="Number of results per page. Defaults to 10 if parameter not sent.")] = None,
+ next_token: Annotated[Optional[StrictStr], Field(description="A string to get the next page of results if there are more results.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2660,15 +2701,17 @@ def update_role_permissions(
_content_type: Optional[StrictStr] = None,
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
- ) -> UpdateRolePermissionsResponse:
- """Update role permissions
+ ) -> GetRolesResponse:
+ """List roles
- Update role permissions. update:role_permissions
+ The returned list can be sorted by role name or role key in ascending or descending order. The number of records to return at a time can also be controlled using the `page_size` query string parameter. read:roles
- :param role_id: The identifier for the role. (required)
- :type role_id: str
- :param update_role_permissions_request: (required)
- :type update_role_permissions_request: UpdateRolePermissionsRequest
+ :param sort: Field and order to sort the result by.
+ :type sort: str
+ :param page_size: Number of results per page. Defaults to 10 if parameter not sent.
+ :type page_size: int
+ :param next_token: A string to get the next page of results if there are more results.
+ :type next_token: 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
@@ -2691,9 +2734,10 @@ def update_role_permissions(
:return: Returns the result object.
""" # noqa: E501
- _param = self._update_role_permissions_serialize(
- role_id=role_id,
- update_role_permissions_request=update_role_permissions_request,
+ _param = self._get_roles_serialize(
+ sort=sort,
+ page_size=page_size,
+ next_token=next_token,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -2701,9 +2745,10 @@ def update_role_permissions(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "UpdateRolePermissionsResponse",
+ '200': "GetRolesResponse",
+ '400': "ErrorResponse",
'403': "ErrorResponse",
- '429': None,
+ '429': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
@@ -2717,10 +2762,11 @@ def update_role_permissions(
@validate_call
- def update_role_permissions_with_http_info(
+ def get_roles_with_http_info(
self,
- role_id: Annotated[StrictStr, Field(description="The identifier for the role.")],
- update_role_permissions_request: UpdateRolePermissionsRequest,
+ sort: Annotated[Optional[StrictStr], Field(description="Field and order to sort the result by.")] = None,
+ page_size: Annotated[Optional[StrictInt], Field(description="Number of results per page. Defaults to 10 if parameter not sent.")] = None,
+ next_token: Annotated[Optional[StrictStr], Field(description="A string to get the next page of results if there are more results.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2733,15 +2779,17 @@ def update_role_permissions_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[UpdateRolePermissionsResponse]:
- """Update role permissions
+ ) -> ApiResponse[GetRolesResponse]:
+ """List roles
- Update role permissions. update:role_permissions
+ The returned list can be sorted by role name or role key in ascending or descending order. The number of records to return at a time can also be controlled using the `page_size` query string parameter. read:roles
- :param role_id: The identifier for the role. (required)
- :type role_id: str
- :param update_role_permissions_request: (required)
- :type update_role_permissions_request: UpdateRolePermissionsRequest
+ :param sort: Field and order to sort the result by.
+ :type sort: str
+ :param page_size: Number of results per page. Defaults to 10 if parameter not sent.
+ :type page_size: int
+ :param next_token: A string to get the next page of results if there are more results.
+ :type next_token: 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
@@ -2764,9 +2812,10 @@ def update_role_permissions_with_http_info(
:return: Returns the result object.
""" # noqa: E501
- _param = self._update_role_permissions_serialize(
- role_id=role_id,
- update_role_permissions_request=update_role_permissions_request,
+ _param = self._get_roles_serialize(
+ sort=sort,
+ page_size=page_size,
+ next_token=next_token,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -2774,9 +2823,10 @@ def update_role_permissions_with_http_info(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "UpdateRolePermissionsResponse",
+ '200': "GetRolesResponse",
+ '400': "ErrorResponse",
'403': "ErrorResponse",
- '429': None,
+ '429': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
@@ -2790,10 +2840,11 @@ def update_role_permissions_with_http_info(
@validate_call
- def update_role_permissions_without_preload_content(
+ def get_roles_without_preload_content(
self,
- role_id: Annotated[StrictStr, Field(description="The identifier for the role.")],
- update_role_permissions_request: UpdateRolePermissionsRequest,
+ sort: Annotated[Optional[StrictStr], Field(description="Field and order to sort the result by.")] = None,
+ page_size: Annotated[Optional[StrictInt], Field(description="Number of results per page. Defaults to 10 if parameter not sent.")] = None,
+ next_token: Annotated[Optional[StrictStr], Field(description="A string to get the next page of results if there are more results.")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -2807,14 +2858,16 @@ def update_role_permissions_without_preload_content(
_headers: Optional[Dict[StrictStr, Any]] = None,
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
) -> RESTResponseType:
- """Update role permissions
+ """List roles
- Update role permissions. update:role_permissions
+ The returned list can be sorted by role name or role key in ascending or descending order. The number of records to return at a time can also be controlled using the `page_size` query string parameter. read:roles
- :param role_id: The identifier for the role. (required)
- :type role_id: str
- :param update_role_permissions_request: (required)
- :type update_role_permissions_request: UpdateRolePermissionsRequest
+ :param sort: Field and order to sort the result by.
+ :type sort: str
+ :param page_size: Number of results per page. Defaults to 10 if parameter not sent.
+ :type page_size: int
+ :param next_token: A string to get the next page of results if there are more results.
+ :type next_token: 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
@@ -2837,9 +2890,10 @@ def update_role_permissions_without_preload_content(
:return: Returns the result object.
""" # noqa: E501
- _param = self._update_role_permissions_serialize(
- role_id=role_id,
- update_role_permissions_request=update_role_permissions_request,
+ _param = self._get_roles_serialize(
+ sort=sort,
+ page_size=page_size,
+ next_token=next_token,
_request_auth=_request_auth,
_content_type=_content_type,
_headers=_headers,
@@ -2847,9 +2901,10 @@ def update_role_permissions_without_preload_content(
)
_response_types_map: Dict[str, Optional[str]] = {
- '200': "UpdateRolePermissionsResponse",
+ '200': "GetRolesResponse",
+ '400': "ErrorResponse",
'403': "ErrorResponse",
- '429': None,
+ '429': "ErrorResponse",
}
response_data = self.api_client.call_api(
*_param,
@@ -2858,10 +2913,11 @@ def update_role_permissions_without_preload_content(
return response_data.response
- def _update_role_permissions_serialize(
+ def _get_roles_serialize(
self,
- role_id,
- update_role_permissions_request,
+ sort,
+ page_size,
+ next_token,
_request_auth,
_content_type,
_headers,
@@ -2883,38 +2939,32 @@ def _update_role_permissions_serialize(
_body_params: Optional[bytes] = None
# process the path parameters
- if role_id is not None:
- _path_params['role_id'] = role_id
# process the query parameters
+ if sort is not None:
+
+ _query_params.append(('sort', sort))
+
+ if page_size is not None:
+
+ _query_params.append(('page_size', page_size))
+
+ if next_token is not None:
+
+ _query_params.append(('next_token', next_token))
+
# process the header parameters
# process the form parameters
# process the body parameter
- if update_role_permissions_request is not None:
- _body_params = update_role_permissions_request
# set the HTTP header `Accept`
if 'Accept' not in _header_params:
_header_params['Accept'] = self.api_client.select_header_accept(
[
- 'application/json',
- 'application/json; charset=utf-8'
+ 'application/json'
]
)
- # set the HTTP header `Content-Type`
- if _content_type:
- _header_params['Content-Type'] = _content_type
- else:
- _default_content_type = (
- self.api_client.select_header_content_type(
- [
- 'application/json'
- ]
- )
- )
- if _default_content_type is not None:
- _header_params['Content-Type'] = _default_content_type
# authentication setting
_auth_settings: List[str] = [
@@ -2922,7 +2972,893 @@ def _update_role_permissions_serialize(
]
return self.api_client.param_serialize(
- method='PATCH',
+ method='GET',
+ resource_path='/api/v1/roles',
+ 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_system_permissions(
+ self,
+ sort: Annotated[Optional[StrictStr], Field(description="Field and order to sort the result by.")] = None,
+ page_size: Annotated[Optional[StrictInt], Field(description="Number of results per page. Defaults to 10 if parameter not sent.")] = None,
+ next_token: Annotated[Optional[StrictStr], Field(description="A string to get the next page of results if there are more results.")] = None,
+ _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,
+ ) -> GetSystemPermissionsResponse:
+ """List system permissions
+
+ The returned list can be sorted by system permission name or ID in ascending or descending order. The number of records to return at a time can also be controlled using the `page_size` query string parameter. System permissions control what organization users can do in the self-serve portal. read:system_permissions
+
+ :param sort: Field and order to sort the result by.
+ :type sort: str
+ :param page_size: Number of results per page. Defaults to 10 if parameter not sent.
+ :type page_size: int
+ :param next_token: A string to get the next page of results if there are more results.
+ :type next_token: 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
+ (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_system_permissions_serialize(
+ sort=sort,
+ page_size=page_size,
+ next_token=next_token,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "GetSystemPermissionsResponse",
+ '403': "ErrorResponse",
+ '429': None,
+ }
+ 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_system_permissions_with_http_info(
+ self,
+ sort: Annotated[Optional[StrictStr], Field(description="Field and order to sort the result by.")] = None,
+ page_size: Annotated[Optional[StrictInt], Field(description="Number of results per page. Defaults to 10 if parameter not sent.")] = None,
+ next_token: Annotated[Optional[StrictStr], Field(description="A string to get the next page of results if there are more results.")] = None,
+ _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[GetSystemPermissionsResponse]:
+ """List system permissions
+
+ The returned list can be sorted by system permission name or ID in ascending or descending order. The number of records to return at a time can also be controlled using the `page_size` query string parameter. System permissions control what organization users can do in the self-serve portal. read:system_permissions
+
+ :param sort: Field and order to sort the result by.
+ :type sort: str
+ :param page_size: Number of results per page. Defaults to 10 if parameter not sent.
+ :type page_size: int
+ :param next_token: A string to get the next page of results if there are more results.
+ :type next_token: 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
+ (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_system_permissions_serialize(
+ sort=sort,
+ page_size=page_size,
+ next_token=next_token,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "GetSystemPermissionsResponse",
+ '403': "ErrorResponse",
+ '429': None,
+ }
+ 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_system_permissions_without_preload_content(
+ self,
+ sort: Annotated[Optional[StrictStr], Field(description="Field and order to sort the result by.")] = None,
+ page_size: Annotated[Optional[StrictInt], Field(description="Number of results per page. Defaults to 10 if parameter not sent.")] = None,
+ next_token: Annotated[Optional[StrictStr], Field(description="A string to get the next page of results if there are more results.")] = None,
+ _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:
+ """List system permissions
+
+ The returned list can be sorted by system permission name or ID in ascending or descending order. The number of records to return at a time can also be controlled using the `page_size` query string parameter. System permissions control what organization users can do in the self-serve portal. read:system_permissions
+
+ :param sort: Field and order to sort the result by.
+ :type sort: str
+ :param page_size: Number of results per page. Defaults to 10 if parameter not sent.
+ :type page_size: int
+ :param next_token: A string to get the next page of results if there are more results.
+ :type next_token: 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
+ (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_system_permissions_serialize(
+ sort=sort,
+ page_size=page_size,
+ next_token=next_token,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "GetSystemPermissionsResponse",
+ '403': "ErrorResponse",
+ '429': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _get_system_permissions_serialize(
+ self,
+ sort,
+ page_size,
+ next_token,
+ _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
+ # process the query parameters
+ if sort is not None:
+
+ _query_params.append(('sort', sort))
+
+ if page_size is not None:
+
+ _query_params.append(('page_size', page_size))
+
+ if next_token is not None:
+
+ _query_params.append(('next_token', next_token))
+
+ # 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',
+ 'application/json; charset=utf-8'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'kindeBearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='GET',
+ resource_path='/api/v1/system_permissions',
+ 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 remove_role_permission(
+ self,
+ role_id: Annotated[StrictStr, Field(description="The role's public id.")],
+ permission_id: Annotated[StrictStr, Field(description="The permission's public id.")],
+ _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,
+ ) -> SuccessResponse:
+ """Remove role permission
+
+ Remove a permission from a role. delete:role_permissions
+
+ :param role_id: The role's public id. (required)
+ :type role_id: str
+ :param permission_id: The permission's public id. (required)
+ :type permission_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
+ (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._remove_role_permission_serialize(
+ role_id=role_id,
+ permission_id=permission_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SuccessResponse",
+ '400': "ErrorResponse",
+ '403': None,
+ '429': None,
+ }
+ 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 remove_role_permission_with_http_info(
+ self,
+ role_id: Annotated[StrictStr, Field(description="The role's public id.")],
+ permission_id: Annotated[StrictStr, Field(description="The permission's public id.")],
+ _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[SuccessResponse]:
+ """Remove role permission
+
+ Remove a permission from a role. delete:role_permissions
+
+ :param role_id: The role's public id. (required)
+ :type role_id: str
+ :param permission_id: The permission's public id. (required)
+ :type permission_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
+ (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._remove_role_permission_serialize(
+ role_id=role_id,
+ permission_id=permission_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SuccessResponse",
+ '400': "ErrorResponse",
+ '403': None,
+ '429': None,
+ }
+ 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 remove_role_permission_without_preload_content(
+ self,
+ role_id: Annotated[StrictStr, Field(description="The role's public id.")],
+ permission_id: Annotated[StrictStr, Field(description="The permission's public id.")],
+ _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:
+ """Remove role permission
+
+ Remove a permission from a role. delete:role_permissions
+
+ :param role_id: The role's public id. (required)
+ :type role_id: str
+ :param permission_id: The permission's public id. (required)
+ :type permission_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
+ (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._remove_role_permission_serialize(
+ role_id=role_id,
+ permission_id=permission_id,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "SuccessResponse",
+ '400': "ErrorResponse",
+ '403': None,
+ '429': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _remove_role_permission_serialize(
+ self,
+ role_id,
+ permission_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 role_id is not None:
+ _path_params['role_id'] = role_id
+ if permission_id is not None:
+ _path_params['permission_id'] = permission_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',
+ 'application/json; charset=utf-8'
+ ]
+ )
+
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'kindeBearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='DELETE',
+ resource_path='/api/v1/roles/{role_id}/permissions/{permission_id}',
+ 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 update_role_permissions(
+ self,
+ role_id: Annotated[StrictStr, Field(description="The identifier for the role.")],
+ update_role_permissions_request: UpdateRolePermissionsRequest,
+ _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,
+ ) -> UpdateRolePermissionsResponse:
+ """Update role permissions
+
+ Update role permissions. update:role_permissions
+
+ :param role_id: The identifier for the role. (required)
+ :type role_id: str
+ :param update_role_permissions_request: (required)
+ :type update_role_permissions_request: UpdateRolePermissionsRequest
+ :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._update_role_permissions_serialize(
+ role_id=role_id,
+ update_role_permissions_request=update_role_permissions_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UpdateRolePermissionsResponse",
+ '403': "ErrorResponse",
+ '429': None,
+ }
+ 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 update_role_permissions_with_http_info(
+ self,
+ role_id: Annotated[StrictStr, Field(description="The identifier for the role.")],
+ update_role_permissions_request: UpdateRolePermissionsRequest,
+ _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[UpdateRolePermissionsResponse]:
+ """Update role permissions
+
+ Update role permissions. update:role_permissions
+
+ :param role_id: The identifier for the role. (required)
+ :type role_id: str
+ :param update_role_permissions_request: (required)
+ :type update_role_permissions_request: UpdateRolePermissionsRequest
+ :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._update_role_permissions_serialize(
+ role_id=role_id,
+ update_role_permissions_request=update_role_permissions_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UpdateRolePermissionsResponse",
+ '403': "ErrorResponse",
+ '429': None,
+ }
+ 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 update_role_permissions_without_preload_content(
+ self,
+ role_id: Annotated[StrictStr, Field(description="The identifier for the role.")],
+ update_role_permissions_request: UpdateRolePermissionsRequest,
+ _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:
+ """Update role permissions
+
+ Update role permissions. update:role_permissions
+
+ :param role_id: The identifier for the role. (required)
+ :type role_id: str
+ :param update_role_permissions_request: (required)
+ :type update_role_permissions_request: UpdateRolePermissionsRequest
+ :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._update_role_permissions_serialize(
+ role_id=role_id,
+ update_role_permissions_request=update_role_permissions_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UpdateRolePermissionsResponse",
+ '403': "ErrorResponse",
+ '429': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _update_role_permissions_serialize(
+ self,
+ role_id,
+ update_role_permissions_request,
+ _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 role_id is not None:
+ _path_params['role_id'] = role_id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if update_role_permissions_request is not None:
+ _body_params = update_role_permissions_request
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json',
+ 'application/json; charset=utf-8'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'kindeBearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PATCH',
resource_path='/api/v1/roles/{role_id}/permissions',
path_params=_path_params,
query_params=_query_params,
@@ -2939,6 +3875,305 @@ def _update_role_permissions_serialize(
+ @validate_call
+ def update_role_system_permissions(
+ self,
+ role_id: Annotated[StrictStr, Field(description="The identifier for the role.")],
+ update_role_system_permissions_request: UpdateRoleSystemPermissionsRequest,
+ _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,
+ ) -> UpdateRoleSystemPermissionsResponse:
+ """Update role system permissions
+
+ Update role system permissions. System permissions control what organization users can do in the self-serve portal. update:role_system_permissions
+
+ :param role_id: The identifier for the role. (required)
+ :type role_id: str
+ :param update_role_system_permissions_request: (required)
+ :type update_role_system_permissions_request: UpdateRoleSystemPermissionsRequest
+ :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._update_role_system_permissions_serialize(
+ role_id=role_id,
+ update_role_system_permissions_request=update_role_system_permissions_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UpdateRoleSystemPermissionsResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '429': None,
+ }
+ 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 update_role_system_permissions_with_http_info(
+ self,
+ role_id: Annotated[StrictStr, Field(description="The identifier for the role.")],
+ update_role_system_permissions_request: UpdateRoleSystemPermissionsRequest,
+ _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[UpdateRoleSystemPermissionsResponse]:
+ """Update role system permissions
+
+ Update role system permissions. System permissions control what organization users can do in the self-serve portal. update:role_system_permissions
+
+ :param role_id: The identifier for the role. (required)
+ :type role_id: str
+ :param update_role_system_permissions_request: (required)
+ :type update_role_system_permissions_request: UpdateRoleSystemPermissionsRequest
+ :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._update_role_system_permissions_serialize(
+ role_id=role_id,
+ update_role_system_permissions_request=update_role_system_permissions_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UpdateRoleSystemPermissionsResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '429': None,
+ }
+ 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 update_role_system_permissions_without_preload_content(
+ self,
+ role_id: Annotated[StrictStr, Field(description="The identifier for the role.")],
+ update_role_system_permissions_request: UpdateRoleSystemPermissionsRequest,
+ _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:
+ """Update role system permissions
+
+ Update role system permissions. System permissions control what organization users can do in the self-serve portal. update:role_system_permissions
+
+ :param role_id: The identifier for the role. (required)
+ :type role_id: str
+ :param update_role_system_permissions_request: (required)
+ :type update_role_system_permissions_request: UpdateRoleSystemPermissionsRequest
+ :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._update_role_system_permissions_serialize(
+ role_id=role_id,
+ update_role_system_permissions_request=update_role_system_permissions_request,
+ _request_auth=_request_auth,
+ _content_type=_content_type,
+ _headers=_headers,
+ _host_index=_host_index
+ )
+
+ _response_types_map: Dict[str, Optional[str]] = {
+ '200': "UpdateRoleSystemPermissionsResponse",
+ '400': "ErrorResponse",
+ '403': "ErrorResponse",
+ '429': None,
+ }
+ response_data = self.api_client.call_api(
+ *_param,
+ _request_timeout=_request_timeout
+ )
+ return response_data.response
+
+
+ def _update_role_system_permissions_serialize(
+ self,
+ role_id,
+ update_role_system_permissions_request,
+ _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 role_id is not None:
+ _path_params['role_id'] = role_id
+ # process the query parameters
+ # process the header parameters
+ # process the form parameters
+ # process the body parameter
+ if update_role_system_permissions_request is not None:
+ _body_params = update_role_system_permissions_request
+
+
+ # set the HTTP header `Accept`
+ if 'Accept' not in _header_params:
+ _header_params['Accept'] = self.api_client.select_header_accept(
+ [
+ 'application/json',
+ 'application/json; charset=utf-8'
+ ]
+ )
+
+ # set the HTTP header `Content-Type`
+ if _content_type:
+ _header_params['Content-Type'] = _content_type
+ else:
+ _default_content_type = (
+ self.api_client.select_header_content_type(
+ [
+ 'application/json'
+ ]
+ )
+ )
+ if _default_content_type is not None:
+ _header_params['Content-Type'] = _default_content_type
+
+ # authentication setting
+ _auth_settings: List[str] = [
+ 'kindeBearerAuth'
+ ]
+
+ return self.api_client.param_serialize(
+ method='PATCH',
+ resource_path='/api/v1/roles/{role_id}/system_permissions',
+ 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 update_roles(
self,
diff --git a/kinde_sdk/management/api/search_api.py b/kinde_sdk/management/api/search_api.py
index d3add29e..d3e99c73 100644
--- a/kinde_sdk/management/api/search_api.py
+++ b/kinde_sdk/management/api/search_api.py
@@ -49,7 +49,7 @@ def search_users(
properties: Optional[Dict[str, Dict[str, List[StrictStr]]]] = None,
starting_after: Annotated[Optional[StrictStr], Field(description="The ID of the user to start after.")] = None,
ending_before: Annotated[Optional[StrictStr], Field(description="The ID of the user to end before.")] = None,
- expand: Annotated[Optional[StrictStr], Field(description="Specify additional data to retrieve. Use \"organizations\" and/or \"identities\".")] = None,
+ expand: Annotated[Optional[StrictStr], Field(description="Additional data to include in the response. One or more of (comma-separated): \"organizations\", \"identities\", \"properties\".")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -79,7 +79,7 @@ def search_users(
:type starting_after: str
:param ending_before: The ID of the user to end before.
:type ending_before: str
- :param expand: Specify additional data to retrieve. Use \"organizations\" and/or \"identities\".
+ :param expand: Additional data to include in the response. One or more of (comma-separated): \"organizations\", \"identities\", \"properties\".
:type expand: str
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
@@ -143,7 +143,7 @@ def search_users_with_http_info(
properties: Optional[Dict[str, Dict[str, List[StrictStr]]]] = None,
starting_after: Annotated[Optional[StrictStr], Field(description="The ID of the user to start after.")] = None,
ending_before: Annotated[Optional[StrictStr], Field(description="The ID of the user to end before.")] = None,
- expand: Annotated[Optional[StrictStr], Field(description="Specify additional data to retrieve. Use \"organizations\" and/or \"identities\".")] = None,
+ expand: Annotated[Optional[StrictStr], Field(description="Additional data to include in the response. One or more of (comma-separated): \"organizations\", \"identities\", \"properties\".")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -173,7 +173,7 @@ def search_users_with_http_info(
:type starting_after: str
:param ending_before: The ID of the user to end before.
:type ending_before: str
- :param expand: Specify additional data to retrieve. Use \"organizations\" and/or \"identities\".
+ :param expand: Additional data to include in the response. One or more of (comma-separated): \"organizations\", \"identities\", \"properties\".
:type expand: str
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
@@ -237,7 +237,7 @@ def search_users_without_preload_content(
properties: Optional[Dict[str, Dict[str, List[StrictStr]]]] = None,
starting_after: Annotated[Optional[StrictStr], Field(description="The ID of the user to start after.")] = None,
ending_before: Annotated[Optional[StrictStr], Field(description="The ID of the user to end before.")] = None,
- expand: Annotated[Optional[StrictStr], Field(description="Specify additional data to retrieve. Use \"organizations\" and/or \"identities\".")] = None,
+ expand: Annotated[Optional[StrictStr], Field(description="Additional data to include in the response. One or more of (comma-separated): \"organizations\", \"identities\", \"properties\".")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -267,7 +267,7 @@ def search_users_without_preload_content(
:type starting_after: str
:param ending_before: The ID of the user to end before.
:type ending_before: str
- :param expand: Specify additional data to retrieve. Use \"organizations\" and/or \"identities\".
+ :param expand: Additional data to include in the response. One or more of (comma-separated): \"organizations\", \"identities\", \"properties\".
:type expand: str
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
diff --git a/kinde_sdk/management/api/users_api.py b/kinde_sdk/management/api/users_api.py
index f96deecf..f7f0a23c 100644
--- a/kinde_sdk/management/api/users_api.py
+++ b/kinde_sdk/management/api/users_api.py
@@ -1203,7 +1203,7 @@ def _delete_user_sessions_serialize(
def get_user_data(
self,
id: Annotated[StrictStr, Field(description="The user's id.")],
- expand: Annotated[Optional[StrictStr], Field(description="Specify additional data to retrieve. Use \"organizations\", \"identities\" and/or \"billing\".")] = None,
+ expand: Annotated[Optional[StrictStr], Field(description="Additional data to include in the response. One or more of (comma-separated): \"organizations\", \"identities\", \"billing\".")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1223,7 +1223,7 @@ def get_user_data(
:param id: The user's id. (required)
:type id: str
- :param expand: Specify additional data to retrieve. Use \"organizations\", \"identities\" and/or \"billing\".
+ :param expand: Additional data to include in the response. One or more of (comma-separated): \"organizations\", \"identities\", \"billing\".
:type expand: str
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
@@ -1277,7 +1277,7 @@ def get_user_data(
def get_user_data_with_http_info(
self,
id: Annotated[StrictStr, Field(description="The user's id.")],
- expand: Annotated[Optional[StrictStr], Field(description="Specify additional data to retrieve. Use \"organizations\", \"identities\" and/or \"billing\".")] = None,
+ expand: Annotated[Optional[StrictStr], Field(description="Additional data to include in the response. One or more of (comma-separated): \"organizations\", \"identities\", \"billing\".")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1297,7 +1297,7 @@ def get_user_data_with_http_info(
:param id: The user's id. (required)
:type id: str
- :param expand: Specify additional data to retrieve. Use \"organizations\", \"identities\" and/or \"billing\".
+ :param expand: Additional data to include in the response. One or more of (comma-separated): \"organizations\", \"identities\", \"billing\".
:type expand: str
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
@@ -1351,7 +1351,7 @@ def get_user_data_with_http_info(
def get_user_data_without_preload_content(
self,
id: Annotated[StrictStr, Field(description="The user's id.")],
- expand: Annotated[Optional[StrictStr], Field(description="Specify additional data to retrieve. Use \"organizations\", \"identities\" and/or \"billing\".")] = None,
+ expand: Annotated[Optional[StrictStr], Field(description="Additional data to include in the response. One or more of (comma-separated): \"organizations\", \"identities\", \"billing\".")] = None,
_request_timeout: Union[
None,
Annotated[StrictFloat, Field(gt=0)],
@@ -1371,7 +1371,7 @@ def get_user_data_without_preload_content(
:param id: The user's id. (required)
:type id: str
- :param expand: Specify additional data to retrieve. Use \"organizations\", \"identities\" and/or \"billing\".
+ :param expand: Additional data to include in the response. One or more of (comma-separated): \"organizations\", \"identities\", \"billing\".
:type expand: str
:param _request_timeout: timeout setting for this request. If one
number provided, it will be total request
@@ -2346,7 +2346,7 @@ def get_users(
email: Annotated[Optional[StrictStr], Field(description="Filter the results by email address. The query string should be comma separated and url encoded.")] = None,
username: Annotated[Optional[StrictStr], Field(description="Filter the results by username. The query string should be comma separated and url encoded.")] = None,
phone: Annotated[Optional[StrictStr], Field(description="Filter the results by phone. The query string should be comma separated and url encoded.")] = None,
- expand: Annotated[Optional[StrictStr], Field(description="Specify additional data to retrieve. Use \"organizations\", \"identities\" and/or \"billing\".")] = None,
+ expand: Annotated[Optional[StrictStr], Field(description="Additional data to include in the response. One or more of (comma-separated): \"organizations\", \"identities\", \"billing\".")] = None,
has_organization: Annotated[Optional[StrictBool], Field(description="Filter the results by if the user has at least one organization assigned.")] = None,
active_since: Annotated[Optional[datetime], Field(description="Filter the results to only include users who have been active since this date. Date should be in ISO 8601 format.")] = None,
_request_timeout: Union[
@@ -2378,7 +2378,7 @@ def get_users(
:type username: str
:param phone: Filter the results by phone. The query string should be comma separated and url encoded.
:type phone: str
- :param expand: Specify additional data to retrieve. Use \"organizations\", \"identities\" and/or \"billing\".
+ :param expand: Additional data to include in the response. One or more of (comma-separated): \"organizations\", \"identities\", \"billing\".
:type expand: str
:param has_organization: Filter the results by if the user has at least one organization assigned.
:type has_organization: bool
@@ -2448,7 +2448,7 @@ def get_users_with_http_info(
email: Annotated[Optional[StrictStr], Field(description="Filter the results by email address. The query string should be comma separated and url encoded.")] = None,
username: Annotated[Optional[StrictStr], Field(description="Filter the results by username. The query string should be comma separated and url encoded.")] = None,
phone: Annotated[Optional[StrictStr], Field(description="Filter the results by phone. The query string should be comma separated and url encoded.")] = None,
- expand: Annotated[Optional[StrictStr], Field(description="Specify additional data to retrieve. Use \"organizations\", \"identities\" and/or \"billing\".")] = None,
+ expand: Annotated[Optional[StrictStr], Field(description="Additional data to include in the response. One or more of (comma-separated): \"organizations\", \"identities\", \"billing\".")] = None,
has_organization: Annotated[Optional[StrictBool], Field(description="Filter the results by if the user has at least one organization assigned.")] = None,
active_since: Annotated[Optional[datetime], Field(description="Filter the results to only include users who have been active since this date. Date should be in ISO 8601 format.")] = None,
_request_timeout: Union[
@@ -2480,7 +2480,7 @@ def get_users_with_http_info(
:type username: str
:param phone: Filter the results by phone. The query string should be comma separated and url encoded.
:type phone: str
- :param expand: Specify additional data to retrieve. Use \"organizations\", \"identities\" and/or \"billing\".
+ :param expand: Additional data to include in the response. One or more of (comma-separated): \"organizations\", \"identities\", \"billing\".
:type expand: str
:param has_organization: Filter the results by if the user has at least one organization assigned.
:type has_organization: bool
@@ -2550,7 +2550,7 @@ def get_users_without_preload_content(
email: Annotated[Optional[StrictStr], Field(description="Filter the results by email address. The query string should be comma separated and url encoded.")] = None,
username: Annotated[Optional[StrictStr], Field(description="Filter the results by username. The query string should be comma separated and url encoded.")] = None,
phone: Annotated[Optional[StrictStr], Field(description="Filter the results by phone. The query string should be comma separated and url encoded.")] = None,
- expand: Annotated[Optional[StrictStr], Field(description="Specify additional data to retrieve. Use \"organizations\", \"identities\" and/or \"billing\".")] = None,
+ expand: Annotated[Optional[StrictStr], Field(description="Additional data to include in the response. One or more of (comma-separated): \"organizations\", \"identities\", \"billing\".")] = None,
has_organization: Annotated[Optional[StrictBool], Field(description="Filter the results by if the user has at least one organization assigned.")] = None,
active_since: Annotated[Optional[datetime], Field(description="Filter the results to only include users who have been active since this date. Date should be in ISO 8601 format.")] = None,
_request_timeout: Union[
@@ -2582,7 +2582,7 @@ def get_users_without_preload_content(
:type username: str
:param phone: Filter the results by phone. The query string should be comma separated and url encoded.
:type phone: str
- :param expand: Specify additional data to retrieve. Use \"organizations\", \"identities\" and/or \"billing\".
+ :param expand: Additional data to include in the response. One or more of (comma-separated): \"organizations\", \"identities\", \"billing\".
:type expand: str
:param has_organization: Filter the results by if the user has at least one organization assigned.
:type has_organization: bool
diff --git a/kinde_sdk/management/api_client.py b/kinde_sdk/management/api_client.py
index f5381485..e659e104 100644
--- a/kinde_sdk/management/api_client.py
+++ b/kinde_sdk/management/api_client.py
@@ -92,7 +92,7 @@ def __init__(
self.default_headers[header_name] = header_value
self.cookie = cookie
# Set default User-Agent.
- self.user_agent = 'OpenAPI-Generator/2.0.0/python'
+ self.user_agent = 'OpenAPI-Generator/2.3.0/python'
self.client_side_validation = configuration.client_side_validation
def __enter__(self):
diff --git a/kinde_sdk/management/configuration.py b/kinde_sdk/management/configuration.py
index 010925a2..f8147763 100644
--- a/kinde_sdk/management/configuration.py
+++ b/kinde_sdk/management/configuration.py
@@ -517,7 +517,7 @@ def to_debug_report(self) -> str:
"OS: {env}\n"\
"Python Version: {pyversion}\n"\
"Version of the API: 1\n"\
- "SDK Package Version: 2.0.0".\
+ "SDK Package Version: 2.3.0".\
format(env=sys.platform, pyversion=sys.version)
def get_host_settings(self) -> List[HostSetting]:
diff --git a/kinde_sdk/management/models/__init__.py b/kinde_sdk/management/models/__init__.py
index 7fd5b7a7..458ec1b9 100644
--- a/kinde_sdk/management/models/__init__.py
+++ b/kinde_sdk/management/models/__init__.py
@@ -50,6 +50,8 @@
from kinde_sdk.management.models.create_connection_request_options_one_of2 import CreateConnectionRequestOptionsOneOf2
from kinde_sdk.management.models.create_connection_response import CreateConnectionResponse
from kinde_sdk.management.models.create_connection_response_connection import CreateConnectionResponseConnection
+from kinde_sdk.management.models.create_directory_request import CreateDirectoryRequest
+from kinde_sdk.management.models.create_directory_response import CreateDirectoryResponse
from kinde_sdk.management.models.create_environment_variable_request import CreateEnvironmentVariableRequest
from kinde_sdk.management.models.create_environment_variable_response import CreateEnvironmentVariableResponse
from kinde_sdk.management.models.create_environment_variable_response_environment_variable import CreateEnvironmentVariableResponseEnvironmentVariable
@@ -58,6 +60,9 @@
from kinde_sdk.management.models.create_identity_response_identity import CreateIdentityResponseIdentity
from kinde_sdk.management.models.create_meter_usage_record_request import CreateMeterUsageRecordRequest
from kinde_sdk.management.models.create_meter_usage_record_response import CreateMeterUsageRecordResponse
+from kinde_sdk.management.models.create_organization_invite_request import CreateOrganizationInviteRequest
+from kinde_sdk.management.models.create_organization_invite_response import CreateOrganizationInviteResponse
+from kinde_sdk.management.models.create_organization_invite_response_invite import CreateOrganizationInviteResponseInvite
from kinde_sdk.management.models.create_organization_request import CreateOrganizationRequest
from kinde_sdk.management.models.create_organization_response import CreateOrganizationResponse
from kinde_sdk.management.models.create_organization_response_organization import CreateOrganizationResponseOrganization
@@ -82,9 +87,11 @@
from kinde_sdk.management.models.create_webhook_response import CreateWebhookResponse
from kinde_sdk.management.models.create_webhook_response_webhook import CreateWebhookResponseWebhook
from kinde_sdk.management.models.delete_api_response import DeleteApiResponse
+from kinde_sdk.management.models.delete_directory_response import DeleteDirectoryResponse
from kinde_sdk.management.models.delete_environment_variable_response import DeleteEnvironmentVariableResponse
from kinde_sdk.management.models.delete_role_scope_response import DeleteRoleScopeResponse
from kinde_sdk.management.models.delete_webhook_response import DeleteWebhookResponse
+from kinde_sdk.management.models.directory import Directory
from kinde_sdk.management.models.environment_variable import EnvironmentVariable
from kinde_sdk.management.models.error import Error
from kinde_sdk.management.models.error_response import ErrorResponse
@@ -116,6 +123,8 @@
from kinde_sdk.management.models.get_business_response_business import GetBusinessResponseBusiness
from kinde_sdk.management.models.get_categories_response import GetCategoriesResponse
from kinde_sdk.management.models.get_connections_response import GetConnectionsResponse
+from kinde_sdk.management.models.get_directories_response import GetDirectoriesResponse
+from kinde_sdk.management.models.get_directory_response import GetDirectoryResponse
from kinde_sdk.management.models.get_environment_feature_flags_response import GetEnvironmentFeatureFlagsResponse
from kinde_sdk.management.models.get_environment_response import GetEnvironmentResponse
from kinde_sdk.management.models.get_environment_response_environment import GetEnvironmentResponseEnvironment
@@ -131,22 +140,32 @@
from kinde_sdk.management.models.get_industries_response_industries_inner import GetIndustriesResponseIndustriesInner
from kinde_sdk.management.models.get_organization_feature_flags_response import GetOrganizationFeatureFlagsResponse
from kinde_sdk.management.models.get_organization_feature_flags_response_feature_flags_value import GetOrganizationFeatureFlagsResponseFeatureFlagsValue
+from kinde_sdk.management.models.get_organization_invite_response import GetOrganizationInviteResponse
+from kinde_sdk.management.models.get_organization_invite_response_roles_inner import GetOrganizationInviteResponseRolesInner
+from kinde_sdk.management.models.get_organization_invites_response import GetOrganizationInvitesResponse
+from kinde_sdk.management.models.get_organization_passkey200_response import GetOrganizationPasskey200Response
from kinde_sdk.management.models.get_organization_response import GetOrganizationResponse
from kinde_sdk.management.models.get_organization_response_billing import GetOrganizationResponseBilling
from kinde_sdk.management.models.get_organization_response_billing_agreements_inner import GetOrganizationResponseBillingAgreementsInner
+from kinde_sdk.management.models.get_organization_role_users_response import GetOrganizationRoleUsersResponse
+from kinde_sdk.management.models.get_organization_role_users_response_users_inner import GetOrganizationRoleUsersResponseUsersInner
from kinde_sdk.management.models.get_organization_users_response import GetOrganizationUsersResponse
from kinde_sdk.management.models.get_organizations_response import GetOrganizationsResponse
from kinde_sdk.management.models.get_organizations_user_permissions_response import GetOrganizationsUserPermissionsResponse
from kinde_sdk.management.models.get_organizations_user_roles_response import GetOrganizationsUserRolesResponse
+from kinde_sdk.management.models.get_passkey200_response import GetPasskey200Response
from kinde_sdk.management.models.get_permissions_response import GetPermissionsResponse
from kinde_sdk.management.models.get_properties_response import GetPropertiesResponse
from kinde_sdk.management.models.get_property_values_response import GetPropertyValuesResponse
from kinde_sdk.management.models.get_redirect_callback_urls_response import GetRedirectCallbackUrlsResponse
from kinde_sdk.management.models.get_role_response import GetRoleResponse
from kinde_sdk.management.models.get_role_response_role import GetRoleResponseRole
+from kinde_sdk.management.models.get_role_users_response import GetRoleUsersResponse
+from kinde_sdk.management.models.get_role_users_response_users_inner import GetRoleUsersResponseUsersInner
from kinde_sdk.management.models.get_roles_response import GetRolesResponse
from kinde_sdk.management.models.get_subscriber_response import GetSubscriberResponse
from kinde_sdk.management.models.get_subscribers_response import GetSubscribersResponse
+from kinde_sdk.management.models.get_system_permissions_response import GetSystemPermissionsResponse
from kinde_sdk.management.models.get_timezones_response import GetTimezonesResponse
from kinde_sdk.management.models.get_timezones_response_timezones_inner import GetTimezonesResponseTimezonesInner
from kinde_sdk.management.models.get_user_mfa_response import GetUserMfaResponse
@@ -159,6 +178,7 @@
from kinde_sdk.management.models.model_property import ModelProperty
from kinde_sdk.management.models.not_found_response import NotFoundResponse
from kinde_sdk.management.models.not_found_response_errors import NotFoundResponseErrors
+from kinde_sdk.management.models.organization_invite import OrganizationInvite
from kinde_sdk.management.models.organization_item_schema import OrganizationItemSchema
from kinde_sdk.management.models.organization_user import OrganizationUser
from kinde_sdk.management.models.organization_user_permission import OrganizationUserPermission
@@ -184,6 +204,7 @@
from kinde_sdk.management.models.role import Role
from kinde_sdk.management.models.role_permissions_response import RolePermissionsResponse
from kinde_sdk.management.models.role_scopes_response import RoleScopesResponse
+from kinde_sdk.management.models.role_system_permissions_response import RoleSystemPermissionsResponse
from kinde_sdk.management.models.roles import Roles
from kinde_sdk.management.models.rotate_api_key_response import RotateApiKeyResponse
from kinde_sdk.management.models.rotate_api_key_response_api_key import RotateApiKeyResponseApiKey
@@ -195,6 +216,7 @@
from kinde_sdk.management.models.subscriber import Subscriber
from kinde_sdk.management.models.subscribers_subscriber import SubscribersSubscriber
from kinde_sdk.management.models.success_response import SuccessResponse
+from kinde_sdk.management.models.system_permissions import SystemPermissions
from kinde_sdk.management.models.update_api_applications_request import UpdateAPIApplicationsRequest
from kinde_sdk.management.models.update_api_applications_request_applications_inner import UpdateAPIApplicationsRequestApplicationsInner
from kinde_sdk.management.models.update_api_scope_request import UpdateAPIScopeRequest
@@ -207,20 +229,30 @@
from kinde_sdk.management.models.update_connection_request import UpdateConnectionRequest
from kinde_sdk.management.models.update_connection_request_options import UpdateConnectionRequestOptions
from kinde_sdk.management.models.update_connection_request_options_one_of import UpdateConnectionRequestOptionsOneOf
+from kinde_sdk.management.models.update_connection_request_options_one_of1 import UpdateConnectionRequestOptionsOneOf1
+from kinde_sdk.management.models.update_directory_request import UpdateDirectoryRequest
+from kinde_sdk.management.models.update_directory_response import UpdateDirectoryResponse
from kinde_sdk.management.models.update_environement_feature_flag_override_request import UpdateEnvironementFeatureFlagOverrideRequest
from kinde_sdk.management.models.update_environment_variable_request import UpdateEnvironmentVariableRequest
from kinde_sdk.management.models.update_environment_variable_response import UpdateEnvironmentVariableResponse
from kinde_sdk.management.models.update_identity_request import UpdateIdentityRequest
+from kinde_sdk.management.models.update_organization_passkey200_response import UpdateOrganizationPasskey200Response
+from kinde_sdk.management.models.update_organization_passkey_request import UpdateOrganizationPasskeyRequest
from kinde_sdk.management.models.update_organization_properties_request import UpdateOrganizationPropertiesRequest
from kinde_sdk.management.models.update_organization_request import UpdateOrganizationRequest
from kinde_sdk.management.models.update_organization_sessions_request import UpdateOrganizationSessionsRequest
from kinde_sdk.management.models.update_organization_users_request import UpdateOrganizationUsersRequest
from kinde_sdk.management.models.update_organization_users_request_users_inner import UpdateOrganizationUsersRequestUsersInner
from kinde_sdk.management.models.update_organization_users_response import UpdateOrganizationUsersResponse
+from kinde_sdk.management.models.update_passkey200_response import UpdatePasskey200Response
+from kinde_sdk.management.models.update_passkey_request import UpdatePasskeyRequest
from kinde_sdk.management.models.update_property_request import UpdatePropertyRequest
from kinde_sdk.management.models.update_role_permissions_request import UpdateRolePermissionsRequest
from kinde_sdk.management.models.update_role_permissions_request_permissions_inner import UpdateRolePermissionsRequestPermissionsInner
from kinde_sdk.management.models.update_role_permissions_response import UpdateRolePermissionsResponse
+from kinde_sdk.management.models.update_role_system_permissions_request import UpdateRoleSystemPermissionsRequest
+from kinde_sdk.management.models.update_role_system_permissions_request_system_permissions_inner import UpdateRoleSystemPermissionsRequestSystemPermissionsInner
+from kinde_sdk.management.models.update_role_system_permissions_response import UpdateRoleSystemPermissionsResponse
from kinde_sdk.management.models.update_roles_request import UpdateRolesRequest
from kinde_sdk.management.models.update_user_request import UpdateUserRequest
from kinde_sdk.management.models.update_user_response import UpdateUserResponse
@@ -235,6 +267,7 @@
from kinde_sdk.management.models.users_response import UsersResponse
from kinde_sdk.management.models.users_response_users_inner import UsersResponseUsersInner
from kinde_sdk.management.models.users_response_users_inner_billing import UsersResponseUsersInnerBilling
+from kinde_sdk.management.models.users_response_users_inner_identities_inner import UsersResponseUsersInnerIdentitiesInner
from kinde_sdk.management.models.users_response_users_inner_last_organization_sign_ins_inner import UsersResponseUsersInnerLastOrganizationSignInsInner
from kinde_sdk.management.models.verify_api_key_request import VerifyApiKeyRequest
from kinde_sdk.management.models.verify_api_key_response import VerifyApiKeyResponse
diff --git a/kinde_sdk/management/models/create_connection_request_options_one_of.py b/kinde_sdk/management/models/create_connection_request_options_one_of.py
index 2b33a944..92dd9774 100644
--- a/kinde_sdk/management/models/create_connection_request_options_one_of.py
+++ b/kinde_sdk/management/models/create_connection_request_options_one_of.py
@@ -30,7 +30,8 @@ class CreateConnectionRequestOptionsOneOf(BaseModel):
client_id: Optional[StrictStr] = Field(default=None, description="OAuth client ID.")
client_secret: Optional[StrictStr] = Field(default=None, description="OAuth client secret.")
is_use_custom_domain: Optional[StrictBool] = Field(default=None, description="Use custom domain callback URL.")
- __properties: ClassVar[List[str]] = ["client_id", "client_secret", "is_use_custom_domain"]
+ is_trusted: Optional[StrictBool] = Field(default=None, description="Trust this connection for account merging.")
+ __properties: ClassVar[List[str]] = ["client_id", "client_secret", "is_use_custom_domain", "is_trusted"]
model_config = ConfigDict(
populate_by_name=True,
@@ -85,7 +86,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
_obj = cls.model_validate({
"client_id": obj.get("client_id"),
"client_secret": obj.get("client_secret"),
- "is_use_custom_domain": obj.get("is_use_custom_domain")
+ "is_use_custom_domain": obj.get("is_use_custom_domain"),
+ "is_trusted": obj.get("is_trusted")
})
return _obj
diff --git a/kinde_sdk/management/models/create_connection_request_options_one_of1.py b/kinde_sdk/management/models/create_connection_request_options_one_of1.py
index 56936235..284c9447 100644
--- a/kinde_sdk/management/models/create_connection_request_options_one_of1.py
+++ b/kinde_sdk/management/models/create_connection_request_options_one_of1.py
@@ -39,7 +39,9 @@ class CreateConnectionRequestOptionsOneOf1(BaseModel):
is_create_missing_user: Optional[StrictBool] = Field(default=None, description="Create a user record in Kinde if the user signing in does not exist.")
is_force_show_sso_button: Optional[StrictBool] = Field(default=None, description="Force showing the SSO button for this connection.")
upstream_params: Optional[Dict[str, Any]] = Field(default=None, description="Additional upstream parameters to pass to the identity provider.")
- __properties: ClassVar[List[str]] = ["client_id", "client_secret", "home_realm_domains", "entra_id_domain", "is_use_common_endpoint", "is_sync_user_profile_on_login", "is_retrieve_provider_user_groups", "is_extended_attributes_required", "is_auto_join_organization_enabled", "is_create_missing_user", "is_force_show_sso_button", "upstream_params"]
+ is_use_custom_domain: Optional[StrictBool] = Field(default=None, description="Use custom domain callback URL.")
+ is_trusted: Optional[StrictBool] = Field(default=None, description="Trust this connection for account merging.")
+ __properties: ClassVar[List[str]] = ["client_id", "client_secret", "home_realm_domains", "entra_id_domain", "is_use_common_endpoint", "is_sync_user_profile_on_login", "is_retrieve_provider_user_groups", "is_extended_attributes_required", "is_auto_join_organization_enabled", "is_create_missing_user", "is_force_show_sso_button", "upstream_params", "is_use_custom_domain", "is_trusted"]
model_config = ConfigDict(
populate_by_name=True,
@@ -103,7 +105,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"is_auto_join_organization_enabled": obj.get("is_auto_join_organization_enabled"),
"is_create_missing_user": obj.get("is_create_missing_user"),
"is_force_show_sso_button": obj.get("is_force_show_sso_button"),
- "upstream_params": obj.get("upstream_params")
+ "upstream_params": obj.get("upstream_params"),
+ "is_use_custom_domain": obj.get("is_use_custom_domain"),
+ "is_trusted": obj.get("is_trusted")
})
return _obj
diff --git a/kinde_sdk/management/models/create_connection_request_options_one_of2.py b/kinde_sdk/management/models/create_connection_request_options_one_of2.py
index c0e925d3..be1c82f9 100644
--- a/kinde_sdk/management/models/create_connection_request_options_one_of2.py
+++ b/kinde_sdk/management/models/create_connection_request_options_one_of2.py
@@ -18,7 +18,7 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
+from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator
from typing import Any, ClassVar, Dict, List, Optional
from typing import Optional, Set
from typing_extensions import Self
@@ -31,16 +31,52 @@ class CreateConnectionRequestOptionsOneOf2(BaseModel):
saml_entity_id: Optional[StrictStr] = Field(default=None, description="SAML Entity ID.")
saml_idp_metadata_url: Optional[StrictStr] = Field(default=None, description="URL for the IdP metadata.")
saml_sign_in_url: Optional[StrictStr] = Field(default=None, description="Override the default SSO endpoint with a URL your IdP recognizes.")
- saml_email_key_attr: Optional[StrictStr] = Field(default=None, description="Attribute key for the user’s email.")
- saml_first_name_key_attr: Optional[StrictStr] = Field(default=None, description="Attribute key for the user’s first name.")
- saml_last_name_key_attr: Optional[StrictStr] = Field(default=None, description="Attribute key for the user’s last name.")
- is_create_missing_user: Optional[StrictBool] = Field(default=None, description="Create user if they don’t exist.")
+ sign_request_algorithm: Optional[StrictStr] = Field(default=None, description="Algorithm used to sign SAML requests.")
+ protocol_binding: Optional[StrictStr] = Field(default=None, description="Protocol binding used to send SAML requests.")
+ name_id_format: Optional[StrictStr] = Field(default=None, description="Format for the Name ID used to identify users in SAML responses.")
+ saml_email_key_attr: Optional[StrictStr] = Field(default=None, description="Attribute key for the user's email.")
+ saml_user_id_key_attr: Optional[StrictStr] = Field(default=None, description="Attribute key for the user's ID.")
+ saml_first_name_key_attr: Optional[StrictStr] = Field(default=None, description="Attribute key for the user's first name.")
+ saml_last_name_key_attr: Optional[StrictStr] = Field(default=None, description="Attribute key for the user's last name.")
+ is_create_missing_user: Optional[StrictBool] = Field(default=None, description="Create user if they don't exist.")
is_force_show_sso_button: Optional[StrictBool] = Field(default=None, description="Force showing the SSO button for this connection.")
upstream_params: Optional[Dict[str, Any]] = Field(default=None, description="Additional upstream parameters to pass to the identity provider.")
saml_signing_certificate: Optional[StrictStr] = Field(default=None, description="Certificate for signing SAML requests.")
saml_signing_private_key: Optional[StrictStr] = Field(default=None, description="Private key associated with the signing certificate.")
is_auto_join_organization_enabled: Optional[StrictBool] = Field(default=None, description="Users automatically join organization when using this connection.")
- __properties: ClassVar[List[str]] = ["home_realm_domains", "saml_entity_id", "saml_idp_metadata_url", "saml_sign_in_url", "saml_email_key_attr", "saml_first_name_key_attr", "saml_last_name_key_attr", "is_create_missing_user", "is_force_show_sso_button", "upstream_params", "saml_signing_certificate", "saml_signing_private_key", "is_auto_join_organization_enabled"]
+ is_use_custom_domain: Optional[StrictBool] = Field(default=None, description="Use custom domain callback URL.")
+ is_trusted: Optional[StrictBool] = Field(default=None, description="Trust this connection for account merging.")
+ __properties: ClassVar[List[str]] = ["home_realm_domains", "saml_entity_id", "saml_idp_metadata_url", "saml_sign_in_url", "sign_request_algorithm", "protocol_binding", "name_id_format", "saml_email_key_attr", "saml_user_id_key_attr", "saml_first_name_key_attr", "saml_last_name_key_attr", "is_create_missing_user", "is_force_show_sso_button", "upstream_params", "saml_signing_certificate", "saml_signing_private_key", "is_auto_join_organization_enabled", "is_use_custom_domain", "is_trusted"]
+
+ @field_validator('sign_request_algorithm')
+ def sign_request_algorithm_validate_enum(cls, value):
+ """Validates the enum"""
+ if value is None:
+ return value
+
+ if value not in set(['RSA-SHA256', 'RSA-SHA1']):
+ raise ValueError("must be one of enum values ('RSA-SHA256', 'RSA-SHA1')")
+ return value
+
+ @field_validator('protocol_binding')
+ def protocol_binding_validate_enum(cls, value):
+ """Validates the enum"""
+ if value is None:
+ return value
+
+ if value not in set(['HTTP-REDIRECT', 'HTTP-POST']):
+ raise ValueError("must be one of enum values ('HTTP-REDIRECT', 'HTTP-POST')")
+ return value
+
+ @field_validator('name_id_format')
+ def name_id_format_validate_enum(cls, value):
+ """Validates the enum"""
+ if value is None:
+ return value
+
+ if value not in set(['Persistent', 'Transient', 'Email address', 'Unspecified']):
+ raise ValueError("must be one of enum values ('Persistent', 'Transient', 'Email address', 'Unspecified')")
+ return value
model_config = ConfigDict(
populate_by_name=True,
@@ -97,7 +133,11 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"saml_entity_id": obj.get("saml_entity_id"),
"saml_idp_metadata_url": obj.get("saml_idp_metadata_url"),
"saml_sign_in_url": obj.get("saml_sign_in_url"),
+ "sign_request_algorithm": obj.get("sign_request_algorithm"),
+ "protocol_binding": obj.get("protocol_binding"),
+ "name_id_format": obj.get("name_id_format"),
"saml_email_key_attr": obj.get("saml_email_key_attr"),
+ "saml_user_id_key_attr": obj.get("saml_user_id_key_attr"),
"saml_first_name_key_attr": obj.get("saml_first_name_key_attr"),
"saml_last_name_key_attr": obj.get("saml_last_name_key_attr"),
"is_create_missing_user": obj.get("is_create_missing_user"),
@@ -105,7 +145,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"upstream_params": obj.get("upstream_params"),
"saml_signing_certificate": obj.get("saml_signing_certificate"),
"saml_signing_private_key": obj.get("saml_signing_private_key"),
- "is_auto_join_organization_enabled": obj.get("is_auto_join_organization_enabled")
+ "is_auto_join_organization_enabled": obj.get("is_auto_join_organization_enabled"),
+ "is_use_custom_domain": obj.get("is_use_custom_domain"),
+ "is_trusted": obj.get("is_trusted")
})
return _obj
diff --git a/kinde_sdk/management/models/create_directory_request.py b/kinde_sdk/management/models/create_directory_request.py
new file mode 100644
index 00000000..267905fb
--- /dev/null
+++ b/kinde_sdk/management/models/create_directory_request.py
@@ -0,0 +1,101 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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, field_validator
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class CreateDirectoryRequest(BaseModel):
+ """
+ CreateDirectoryRequest
+ """ # noqa: E501
+ org_code: StrictStr = Field(description="The organization code to create the SCIM directory for.")
+ directory_name: StrictStr = Field(description="A descriptive name for the SCIM directory.")
+ provider_code: StrictStr = Field(description="The SCIM provider code to use for this directory.")
+ enterprise_connection_id: Optional[StrictStr] = Field(default=None, description="The enterprise connection ID to associate with this directory for SCIM-provisioned users. Required when the organization has multiple enabled enterprise connections. ")
+ __properties: ClassVar[List[str]] = ["org_code", "directory_name", "provider_code", "enterprise_connection_id"]
+
+ @field_validator('provider_code')
+ def provider_code_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['entra_id_azure_ad', 'okta', 'google_workspace', 'custom_scim_v2', 'cyberark', 'jumpcloud', 'onelogin', 'pingfederate', 'rippling']):
+ raise ValueError("must be one of enum values ('entra_id_azure_ad', 'okta', 'google_workspace', 'custom_scim_v2', 'cyberark', 'jumpcloud', 'onelogin', 'pingfederate', 'rippling')")
+ return value
+
+ 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 CreateDirectoryRequest 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of CreateDirectoryRequest from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "org_code": obj.get("org_code"),
+ "directory_name": obj.get("directory_name"),
+ "provider_code": obj.get("provider_code"),
+ "enterprise_connection_id": obj.get("enterprise_connection_id")
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/create_directory_response.py b/kinde_sdk/management/models/create_directory_response.py
new file mode 100644
index 00000000..13648a68
--- /dev/null
+++ b/kinde_sdk/management/models/create_directory_response.py
@@ -0,0 +1,96 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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, Optional
+from kinde_sdk.management.models.directory import Directory
+from typing import Optional, Set
+from typing_extensions import Self
+
+class CreateDirectoryResponse(BaseModel):
+ """
+ CreateDirectoryResponse
+ """ # noqa: E501
+ code: Optional[StrictStr] = Field(default=None, description="Response code.")
+ message: Optional[StrictStr] = Field(default=None, description="Response message.")
+ directory: Optional[Directory] = None
+ __properties: ClassVar[List[str]] = ["code", "message", "directory"]
+
+ 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 CreateDirectoryResponse 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of directory
+ if self.directory:
+ _dict['directory'] = self.directory.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of CreateDirectoryResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "code": obj.get("code"),
+ "message": obj.get("message"),
+ "directory": Directory.from_dict(obj["directory"]) if obj.get("directory") is not None else None
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/create_organization_invite_request.py b/kinde_sdk/management/models/create_organization_invite_request.py
new file mode 100644
index 00000000..1bd194c9
--- /dev/null
+++ b/kinde_sdk/management/models/create_organization_invite_request.py
@@ -0,0 +1,107 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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, StrictBool, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing_extensions import Annotated
+from typing import Optional, Set
+from typing_extensions import Self
+
+class CreateOrganizationInviteRequest(BaseModel):
+ """
+ CreateOrganizationInviteRequest
+ """ # noqa: E501
+ email: Annotated[str, Field(strict=True, max_length=254)] = Field(description="The email address of the user to invite. Maximum 254 characters.")
+ first_name: Optional[Annotated[str, Field(strict=True, max_length=64)]] = Field(default=None, description="The first name of the user to invite. Maximum 64 characters.")
+ last_name: Optional[Annotated[str, Field(strict=True, max_length=64)]] = Field(default=None, description="The last name of the user to invite. Maximum 64 characters.")
+ roles: List[StrictStr] = Field(description="Array of role keys to assign to the user.")
+ send_email: Optional[StrictBool] = Field(default=False, description="Whether to send an invitation email to the user. Defaults to false.")
+ __properties: ClassVar[List[str]] = ["email", "first_name", "last_name", "roles", "send_email"]
+
+ 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 CreateOrganizationInviteRequest 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # set to None if first_name (nullable) is None
+ # and model_fields_set contains the field
+ if self.first_name is None and "first_name" in self.model_fields_set:
+ _dict['first_name'] = None
+
+ # set to None if last_name (nullable) is None
+ # and model_fields_set contains the field
+ if self.last_name is None and "last_name" in self.model_fields_set:
+ _dict['last_name'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of CreateOrganizationInviteRequest from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "email": obj.get("email"),
+ "first_name": obj.get("first_name"),
+ "last_name": obj.get("last_name"),
+ "roles": obj.get("roles"),
+ "send_email": obj.get("send_email") if obj.get("send_email") is not None else False
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/create_organization_invite_response.py b/kinde_sdk/management/models/create_organization_invite_response.py
new file mode 100644
index 00000000..daad80c5
--- /dev/null
+++ b/kinde_sdk/management/models/create_organization_invite_response.py
@@ -0,0 +1,96 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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, Optional
+from kinde_sdk.management.models.create_organization_invite_response_invite import CreateOrganizationInviteResponseInvite
+from typing import Optional, Set
+from typing_extensions import Self
+
+class CreateOrganizationInviteResponse(BaseModel):
+ """
+ CreateOrganizationInviteResponse
+ """ # noqa: E501
+ code: Optional[StrictStr] = Field(default=None, description="Response code.")
+ message: Optional[StrictStr] = Field(default=None, description="Response message.")
+ invite: Optional[CreateOrganizationInviteResponseInvite] = None
+ __properties: ClassVar[List[str]] = ["code", "message", "invite"]
+
+ 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 CreateOrganizationInviteResponse 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of invite
+ if self.invite:
+ _dict['invite'] = self.invite.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of CreateOrganizationInviteResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "code": obj.get("code"),
+ "message": obj.get("message"),
+ "invite": CreateOrganizationInviteResponseInvite.from_dict(obj["invite"]) if obj.get("invite") is not None else None
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/create_organization_invite_response_invite.py b/kinde_sdk/management/models/create_organization_invite_response_invite.py
new file mode 100644
index 00000000..12bd9835
--- /dev/null
+++ b/kinde_sdk/management/models/create_organization_invite_response_invite.py
@@ -0,0 +1,134 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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 datetime import datetime
+from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from kinde_sdk.management.models.get_organization_invite_response_roles_inner import GetOrganizationInviteResponseRolesInner
+from typing import Optional, Set
+from typing_extensions import Self
+
+class CreateOrganizationInviteResponseInvite(BaseModel):
+ """
+ CreateOrganizationInviteResponseInvite
+ """ # noqa: E501
+ id: Optional[StrictStr] = Field(default=None, description="The invitation's unique identifier.")
+ code: Optional[StrictStr] = Field(default=None, description="The invitation's code.")
+ email: Optional[StrictStr] = Field(default=None, description="The email address of the invited user.")
+ first_name: Optional[StrictStr] = Field(default=None, description="The first name of the invited user.")
+ last_name: Optional[StrictStr] = Field(default=None, description="The last name of the invited user.")
+ full_name: Optional[StrictStr] = Field(default=None, description="The full name of the invited user.")
+ created_on: Optional[datetime] = Field(default=None, description="When the invitation was created.")
+ is_sent: Optional[StrictBool] = Field(default=None, description="Whether the invitation email was sent.")
+ accepted_on: Optional[datetime] = Field(default=None, description="When the invitation was accepted. Always null for a freshly created invitation.")
+ roles: Optional[List[GetOrganizationInviteResponseRolesInner]] = Field(default=None, description="The roles assigned to the invitation.")
+ is_revoked: Optional[StrictBool] = Field(default=None, description="Whether the invitation has been revoked. Always false for a freshly created invitation.")
+ invite_link: Optional[StrictStr] = Field(default=None, description="URL to share with the invitee to accept the invitation.")
+ __properties: ClassVar[List[str]] = ["id", "code", "email", "first_name", "last_name", "full_name", "created_on", "is_sent", "accepted_on", "roles", "is_revoked", "invite_link"]
+
+ 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 CreateOrganizationInviteResponseInvite 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _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 roles (list)
+ _items = []
+ if self.roles:
+ for _item_roles in self.roles:
+ if _item_roles:
+ _items.append(_item_roles.to_dict())
+ _dict['roles'] = _items
+ # set to None if first_name (nullable) is None
+ # and model_fields_set contains the field
+ if self.first_name is None and "first_name" in self.model_fields_set:
+ _dict['first_name'] = None
+
+ # set to None if last_name (nullable) is None
+ # and model_fields_set contains the field
+ if self.last_name is None and "last_name" in self.model_fields_set:
+ _dict['last_name'] = None
+
+ # set to None if accepted_on (nullable) is None
+ # and model_fields_set contains the field
+ if self.accepted_on is None and "accepted_on" in self.model_fields_set:
+ _dict['accepted_on'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of CreateOrganizationInviteResponseInvite from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "id": obj.get("id"),
+ "code": obj.get("code"),
+ "email": obj.get("email"),
+ "first_name": obj.get("first_name"),
+ "last_name": obj.get("last_name"),
+ "full_name": obj.get("full_name"),
+ "created_on": obj.get("created_on"),
+ "is_sent": obj.get("is_sent"),
+ "accepted_on": obj.get("accepted_on"),
+ "roles": [GetOrganizationInviteResponseRolesInner.from_dict(_item) for _item in obj["roles"]] if obj.get("roles") is not None else None,
+ "is_revoked": obj.get("is_revoked"),
+ "invite_link": obj.get("invite_link")
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/create_organization_request.py b/kinde_sdk/management/models/create_organization_request.py
index ea48ead0..80c1f945 100644
--- a/kinde_sdk/management/models/create_organization_request.py
+++ b/kinde_sdk/management/models/create_organization_request.py
@@ -40,13 +40,14 @@ class CreateOrganizationRequest(BaseModel):
link_color_dark: Optional[StrictStr] = Field(default=None, description="The organization's brand settings - dark mode link color.")
theme_code: Optional[StrictStr] = Field(default=None, description="The organization's brand settings - theme/mode 'light' | 'dark' | 'user_preference'.")
handle: Optional[StrictStr] = Field(default=None, description="A unique handle for the organization - can be used for dynamic callback urls.")
- is_allow_registrations: Optional[StrictBool] = Field(default=None, description="If users become members of this organization when the org code is supplied during authentication.")
+ is_allow_registrations: Optional[StrictBool] = Field(default=None, description="Deprecated - Use 'is_auto_membership_enabled' instead.")
+ is_auto_membership_enabled: Optional[StrictBool] = Field(default=None, description="If users become members of this organization when the org code is supplied during authentication.")
sender_name: Optional[StrictStr] = Field(default=None, description="The name of the organization that will be used in emails")
sender_email: Optional[StrictStr] = Field(default=None, description="The email address that will be used in emails. Requires custom SMTP to be set up.")
is_create_billing_customer: Optional[StrictBool] = Field(default=None, description="If a billing customer is also created for this organization")
billing_email: Optional[StrictStr] = Field(default=None, description="The email address used for billing purposes for the organization")
billing_plan_code: Optional[StrictStr] = Field(default=None, description="The billing plan to put the customer on. If not specified, the default plan is used")
- __properties: ClassVar[List[str]] = ["name", "feature_flags", "external_id", "background_color", "button_color", "button_text_color", "link_color", "background_color_dark", "button_color_dark", "button_text_color_dark", "link_color_dark", "theme_code", "handle", "is_allow_registrations", "sender_name", "sender_email", "is_create_billing_customer", "billing_email", "billing_plan_code"]
+ __properties: ClassVar[List[str]] = ["name", "feature_flags", "external_id", "background_color", "button_color", "button_text_color", "link_color", "background_color_dark", "button_color_dark", "button_text_color_dark", "link_color_dark", "theme_code", "handle", "is_allow_registrations", "is_auto_membership_enabled", "sender_name", "sender_email", "is_create_billing_customer", "billing_email", "billing_plan_code"]
@field_validator('feature_flags')
def feature_flags_validate_enum(cls, value):
@@ -134,6 +135,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"theme_code": obj.get("theme_code"),
"handle": obj.get("handle"),
"is_allow_registrations": obj.get("is_allow_registrations"),
+ "is_auto_membership_enabled": obj.get("is_auto_membership_enabled"),
"sender_name": obj.get("sender_name"),
"sender_email": obj.get("sender_email"),
"is_create_billing_customer": obj.get("is_create_billing_customer"),
diff --git a/kinde_sdk/management/models/delete_directory_response.py b/kinde_sdk/management/models/delete_directory_response.py
new file mode 100644
index 00000000..27a8f3d2
--- /dev/null
+++ b/kinde_sdk/management/models/delete_directory_response.py
@@ -0,0 +1,92 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class DeleteDirectoryResponse(BaseModel):
+ """
+ DeleteDirectoryResponse
+ """ # noqa: E501
+ code: Optional[StrictStr] = Field(default=None, description="Response code.")
+ message: Optional[StrictStr] = Field(default=None, description="Response message.")
+ directory_id: Optional[StrictStr] = Field(default=None, description="The ID of the deleted SCIM directory.")
+ __properties: ClassVar[List[str]] = ["code", "message", "directory_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 DeleteDirectoryResponse 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of DeleteDirectoryResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "code": obj.get("code"),
+ "message": obj.get("message"),
+ "directory_id": obj.get("directory_id")
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/directory.py b/kinde_sdk/management/models/directory.py
new file mode 100644
index 00000000..a320bf7e
--- /dev/null
+++ b/kinde_sdk/management/models/directory.py
@@ -0,0 +1,146 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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 datetime import datetime
+from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class Directory(BaseModel):
+ """
+ Directory
+ """ # noqa: E501
+ id: Optional[StrictStr] = Field(default=None, description="The unique ID for the SCIM directory.")
+ directory_name: Optional[StrictStr] = Field(default=None, description="The name of the SCIM directory.")
+ directory_endpoint_id: Optional[StrictStr] = Field(default=None, description="The endpoint ID for the SCIM directory.")
+ secret_token: Optional[StrictStr] = Field(default=None, description="The secret token for SCIM authentication.")
+ status: Optional[StrictStr] = Field(default=None, description="The current status of the SCIM directory.")
+ organization_code: Optional[StrictStr] = Field(default=None, description="The organization code this directory belongs to.")
+ enterprise_connection_id: Optional[StrictStr] = Field(default=None, description="The enterprise connection ID used for SCIM-provisioned users.")
+ enterprise_connection_name: Optional[StrictStr] = Field(default=None, description="The display name of the selected enterprise connection.")
+ last_sync_started_at: Optional[datetime] = Field(default=None, description="When the last sync started.")
+ last_sync_completed_at: Optional[datetime] = Field(default=None, description="When the last sync completed.")
+ last_sync_error: Optional[StrictStr] = Field(default=None, description="The last sync error message.")
+ created_on: Optional[datetime] = Field(default=None, description="When the directory was created.")
+ __properties: ClassVar[List[str]] = ["id", "directory_name", "directory_endpoint_id", "secret_token", "status", "organization_code", "enterprise_connection_id", "enterprise_connection_name", "last_sync_started_at", "last_sync_completed_at", "last_sync_error", "created_on"]
+
+ @field_validator('status')
+ def status_validate_enum(cls, value):
+ """Validates the enum"""
+ if value is None:
+ return value
+
+ if value not in set(['Pending', 'Validating', 'Active', 'Inactive', 'Error']):
+ raise ValueError("must be one of enum values ('Pending', 'Validating', 'Active', 'Inactive', 'Error')")
+ return value
+
+ 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 Directory 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # set to None if enterprise_connection_id (nullable) is None
+ # and model_fields_set contains the field
+ if self.enterprise_connection_id is None and "enterprise_connection_id" in self.model_fields_set:
+ _dict['enterprise_connection_id'] = None
+
+ # set to None if enterprise_connection_name (nullable) is None
+ # and model_fields_set contains the field
+ if self.enterprise_connection_name is None and "enterprise_connection_name" in self.model_fields_set:
+ _dict['enterprise_connection_name'] = None
+
+ # set to None if last_sync_started_at (nullable) is None
+ # and model_fields_set contains the field
+ if self.last_sync_started_at is None and "last_sync_started_at" in self.model_fields_set:
+ _dict['last_sync_started_at'] = None
+
+ # set to None if last_sync_completed_at (nullable) is None
+ # and model_fields_set contains the field
+ if self.last_sync_completed_at is None and "last_sync_completed_at" in self.model_fields_set:
+ _dict['last_sync_completed_at'] = None
+
+ # set to None if last_sync_error (nullable) is None
+ # and model_fields_set contains the field
+ if self.last_sync_error is None and "last_sync_error" in self.model_fields_set:
+ _dict['last_sync_error'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of Directory from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "id": obj.get("id"),
+ "directory_name": obj.get("directory_name"),
+ "directory_endpoint_id": obj.get("directory_endpoint_id"),
+ "secret_token": obj.get("secret_token"),
+ "status": obj.get("status"),
+ "organization_code": obj.get("organization_code"),
+ "enterprise_connection_id": obj.get("enterprise_connection_id"),
+ "enterprise_connection_name": obj.get("enterprise_connection_name"),
+ "last_sync_started_at": obj.get("last_sync_started_at"),
+ "last_sync_completed_at": obj.get("last_sync_completed_at"),
+ "last_sync_error": obj.get("last_sync_error"),
+ "created_on": obj.get("created_on")
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/get_directories_response.py b/kinde_sdk/management/models/get_directories_response.py
new file mode 100644
index 00000000..48629aff
--- /dev/null
+++ b/kinde_sdk/management/models/get_directories_response.py
@@ -0,0 +1,102 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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, StrictBool, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from kinde_sdk.management.models.directory import Directory
+from typing import Optional, Set
+from typing_extensions import Self
+
+class GetDirectoriesResponse(BaseModel):
+ """
+ GetDirectoriesResponse
+ """ # noqa: E501
+ code: Optional[StrictStr] = Field(default=None, description="Response code.")
+ message: Optional[StrictStr] = Field(default=None, description="Response message.")
+ has_more: Optional[StrictBool] = Field(default=None, description="Whether more records exist.")
+ directories: Optional[List[Directory]] = None
+ __properties: ClassVar[List[str]] = ["code", "message", "has_more", "directories"]
+
+ 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 GetDirectoriesResponse 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _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 directories (list)
+ _items = []
+ if self.directories:
+ for _item_directories in self.directories:
+ if _item_directories:
+ _items.append(_item_directories.to_dict())
+ _dict['directories'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of GetDirectoriesResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "code": obj.get("code"),
+ "message": obj.get("message"),
+ "has_more": obj.get("has_more"),
+ "directories": [Directory.from_dict(_item) for _item in obj["directories"]] if obj.get("directories") is not None else None
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/get_directory_response.py b/kinde_sdk/management/models/get_directory_response.py
new file mode 100644
index 00000000..baafe602
--- /dev/null
+++ b/kinde_sdk/management/models/get_directory_response.py
@@ -0,0 +1,96 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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, Optional
+from kinde_sdk.management.models.directory import Directory
+from typing import Optional, Set
+from typing_extensions import Self
+
+class GetDirectoryResponse(BaseModel):
+ """
+ GetDirectoryResponse
+ """ # noqa: E501
+ code: Optional[StrictStr] = Field(default=None, description="Response code.")
+ message: Optional[StrictStr] = Field(default=None, description="Response message.")
+ directory: Optional[Directory] = None
+ __properties: ClassVar[List[str]] = ["code", "message", "directory"]
+
+ 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 GetDirectoryResponse 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of directory
+ if self.directory:
+ _dict['directory'] = self.directory.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of GetDirectoryResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "code": obj.get("code"),
+ "message": obj.get("message"),
+ "directory": Directory.from_dict(obj["directory"]) if obj.get("directory") is not None else None
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/get_environment_response_environment.py b/kinde_sdk/management/models/get_environment_response_environment.py
index ddca6416..a25bf9c8 100644
--- a/kinde_sdk/management/models/get_environment_response_environment.py
+++ b/kinde_sdk/management/models/get_environment_response_environment.py
@@ -33,6 +33,7 @@ class GetEnvironmentResponseEnvironment(BaseModel):
name: Optional[StrictStr] = Field(default=None, description="The environment's name.")
hotjar_site_id: Optional[StrictStr] = Field(default=None, description="Your HotJar site ID.")
google_analytics_tag: Optional[StrictStr] = Field(default=None, description="Your Google Analytics tag.")
+ contentsquare_tag_id: Optional[StrictStr] = Field(default=None, description="Your Contentsquare Tag ID.")
is_default: Optional[StrictBool] = Field(default=None, description="Whether the environment is the default. Typically this is your production environment.")
is_live: Optional[StrictBool] = Field(default=None, description="Whether the environment is live.")
kinde_domain: Optional[StrictStr] = Field(default=None, description="Your domain on Kinde")
@@ -55,7 +56,7 @@ class GetEnvironmentResponseEnvironment(BaseModel):
theme_code: Optional[StrictStr] = Field(default=None, description="Whether the environment is forced into light mode, dark mode or user preference")
color_scheme: Optional[StrictStr] = Field(default=None, description="The color scheme for the environment used for meta tags based on the theme code")
created_on: Optional[StrictStr] = Field(default=None, description="Date of environment creation in ISO 8601 format.")
- __properties: ClassVar[List[str]] = ["code", "name", "hotjar_site_id", "google_analytics_tag", "is_default", "is_live", "kinde_domain", "custom_domain", "logo", "logo_dark", "favicon_svg", "favicon_fallback", "link_color", "background_color", "button_color", "button_text_color", "link_color_dark", "background_color_dark", "button_text_color_dark", "button_color_dark", "button_border_radius", "card_border_radius", "input_border_radius", "theme_code", "color_scheme", "created_on"]
+ __properties: ClassVar[List[str]] = ["code", "name", "hotjar_site_id", "google_analytics_tag", "contentsquare_tag_id", "is_default", "is_live", "kinde_domain", "custom_domain", "logo", "logo_dark", "favicon_svg", "favicon_fallback", "link_color", "background_color", "button_color", "button_text_color", "link_color_dark", "background_color_dark", "button_text_color_dark", "button_color_dark", "button_border_radius", "card_border_radius", "input_border_radius", "theme_code", "color_scheme", "created_on"]
@field_validator('theme_code')
def theme_code_validate_enum(cls, value):
@@ -150,6 +151,11 @@ def to_dict(self) -> Dict[str, Any]:
if self.google_analytics_tag is None and "google_analytics_tag" in self.model_fields_set:
_dict['google_analytics_tag'] = None
+ # set to None if contentsquare_tag_id (nullable) is None
+ # and model_fields_set contains the field
+ if self.contentsquare_tag_id is None and "contentsquare_tag_id" in self.model_fields_set:
+ _dict['contentsquare_tag_id'] = None
+
# set to None if custom_domain (nullable) is None
# and model_fields_set contains the field
if self.custom_domain is None and "custom_domain" in self.model_fields_set:
@@ -246,6 +252,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"name": obj.get("name"),
"hotjar_site_id": obj.get("hotjar_site_id"),
"google_analytics_tag": obj.get("google_analytics_tag"),
+ "contentsquare_tag_id": obj.get("contentsquare_tag_id"),
"is_default": obj.get("is_default"),
"is_live": obj.get("is_live"),
"kinde_domain": obj.get("kinde_domain"),
diff --git a/kinde_sdk/management/models/get_organization_invite_response.py b/kinde_sdk/management/models/get_organization_invite_response.py
new file mode 100644
index 00000000..5cebfd16
--- /dev/null
+++ b/kinde_sdk/management/models/get_organization_invite_response.py
@@ -0,0 +1,136 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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 datetime import datetime
+from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from kinde_sdk.management.models.get_organization_invite_response_roles_inner import GetOrganizationInviteResponseRolesInner
+from typing import Optional, Set
+from typing_extensions import Self
+
+class GetOrganizationInviteResponse(BaseModel):
+ """
+ GetOrganizationInviteResponse
+ """ # noqa: E501
+ message: Optional[StrictStr] = Field(default=None, description="Response message.")
+ id: Optional[StrictStr] = Field(default=None, description="The invitation's unique identifier.")
+ code: Optional[StrictStr] = Field(default=None, description="The invitation's code.")
+ email: Optional[StrictStr] = Field(default=None, description="The email address of the invited user.")
+ first_name: Optional[StrictStr] = Field(default=None, description="The first name of the invited user.")
+ last_name: Optional[StrictStr] = Field(default=None, description="The last name of the invited user.")
+ full_name: Optional[StrictStr] = Field(default=None, description="The full name of the invited user.")
+ created_on: Optional[datetime] = Field(default=None, description="When the invitation was created.")
+ is_sent: Optional[StrictBool] = Field(default=None, description="Whether the invitation email was sent.")
+ accepted_on: Optional[datetime] = Field(default=None, description="When the invitation was accepted.")
+ roles: Optional[List[GetOrganizationInviteResponseRolesInner]] = Field(default=None, description="The roles assigned to the invitation.")
+ is_revoked: Optional[StrictBool] = Field(default=None, description="Whether the invitation has been revoked.")
+ invite_link: Optional[StrictStr] = Field(default=None, description="URL to share with the invitee to accept the invitation.")
+ __properties: ClassVar[List[str]] = ["message", "id", "code", "email", "first_name", "last_name", "full_name", "created_on", "is_sent", "accepted_on", "roles", "is_revoked", "invite_link"]
+
+ 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 GetOrganizationInviteResponse 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _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 roles (list)
+ _items = []
+ if self.roles:
+ for _item_roles in self.roles:
+ if _item_roles:
+ _items.append(_item_roles.to_dict())
+ _dict['roles'] = _items
+ # set to None if first_name (nullable) is None
+ # and model_fields_set contains the field
+ if self.first_name is None and "first_name" in self.model_fields_set:
+ _dict['first_name'] = None
+
+ # set to None if last_name (nullable) is None
+ # and model_fields_set contains the field
+ if self.last_name is None and "last_name" in self.model_fields_set:
+ _dict['last_name'] = None
+
+ # set to None if accepted_on (nullable) is None
+ # and model_fields_set contains the field
+ if self.accepted_on is None and "accepted_on" in self.model_fields_set:
+ _dict['accepted_on'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of GetOrganizationInviteResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "message": obj.get("message"),
+ "id": obj.get("id"),
+ "code": obj.get("code"),
+ "email": obj.get("email"),
+ "first_name": obj.get("first_name"),
+ "last_name": obj.get("last_name"),
+ "full_name": obj.get("full_name"),
+ "created_on": obj.get("created_on"),
+ "is_sent": obj.get("is_sent"),
+ "accepted_on": obj.get("accepted_on"),
+ "roles": [GetOrganizationInviteResponseRolesInner.from_dict(_item) for _item in obj["roles"]] if obj.get("roles") is not None else None,
+ "is_revoked": obj.get("is_revoked"),
+ "invite_link": obj.get("invite_link")
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/get_organization_invite_response_roles_inner.py b/kinde_sdk/management/models/get_organization_invite_response_roles_inner.py
new file mode 100644
index 00000000..df90cd29
--- /dev/null
+++ b/kinde_sdk/management/models/get_organization_invite_response_roles_inner.py
@@ -0,0 +1,90 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class GetOrganizationInviteResponseRolesInner(BaseModel):
+ """
+ GetOrganizationInviteResponseRolesInner
+ """ # noqa: E501
+ key: Optional[StrictStr] = Field(default=None, description="The role's key.")
+ name: Optional[StrictStr] = Field(default=None, description="The role's name.")
+ __properties: ClassVar[List[str]] = ["key", "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 GetOrganizationInviteResponseRolesInner 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of GetOrganizationInviteResponseRolesInner from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "key": obj.get("key"),
+ "name": obj.get("name")
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/get_organization_invites_response.py b/kinde_sdk/management/models/get_organization_invites_response.py
new file mode 100644
index 00000000..2445e52c
--- /dev/null
+++ b/kinde_sdk/management/models/get_organization_invites_response.py
@@ -0,0 +1,107 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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, Optional
+from kinde_sdk.management.models.organization_invite import OrganizationInvite
+from typing import Optional, Set
+from typing_extensions import Self
+
+class GetOrganizationInvitesResponse(BaseModel):
+ """
+ GetOrganizationInvitesResponse
+ """ # noqa: E501
+ code: Optional[StrictStr] = Field(default=None, description="Response code.")
+ message: Optional[StrictStr] = Field(default=None, description="Response message.")
+ invites: Optional[List[OrganizationInvite]] = None
+ next_token: Optional[StrictStr] = Field(default=None, description="Pagination token.")
+ __properties: ClassVar[List[str]] = ["code", "message", "invites", "next_token"]
+
+ 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 GetOrganizationInvitesResponse 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _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 invites (list)
+ _items = []
+ if self.invites:
+ for _item_invites in self.invites:
+ if _item_invites:
+ _items.append(_item_invites.to_dict())
+ _dict['invites'] = _items
+ # set to None if next_token (nullable) is None
+ # and model_fields_set contains the field
+ if self.next_token is None and "next_token" in self.model_fields_set:
+ _dict['next_token'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of GetOrganizationInvitesResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "code": obj.get("code"),
+ "message": obj.get("message"),
+ "invites": [OrganizationInvite.from_dict(_item) for _item in obj["invites"]] if obj.get("invites") is not None else None,
+ "next_token": obj.get("next_token")
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/get_organization_passkey200_response.py b/kinde_sdk/management/models/get_organization_passkey200_response.py
new file mode 100644
index 00000000..d25306ba
--- /dev/null
+++ b/kinde_sdk/management/models/get_organization_passkey200_response.py
@@ -0,0 +1,118 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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, StrictBool, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class GetOrganizationPasskey200Response(BaseModel):
+ """
+ GetOrganizationPasskey200Response
+ """ # noqa: E501
+ message: Optional[StrictStr] = None
+ code: Optional[StrictStr] = None
+ enabled: Optional[StrictBool] = Field(default=None, description="Whether passkeys are enabled for this organization.")
+ policy: Optional[StrictStr] = Field(default=None, description="The effective passkey policy for this organization.")
+ is_override_environment_passkey_settings: Optional[StrictBool] = Field(default=None, description="Whether this organization uses a custom passkey policy instead of the environment default.")
+ environment_policy: Optional[StrictStr] = Field(default=None, description="The environment-level passkey policy.")
+ __properties: ClassVar[List[str]] = ["message", "code", "enabled", "policy", "is_override_environment_passkey_settings", "environment_policy"]
+
+ @field_validator('policy')
+ def policy_validate_enum(cls, value):
+ """Validates the enum"""
+ if value is None:
+ return value
+
+ if value not in set(['off', 'optional', 'mandatory']):
+ raise ValueError("must be one of enum values ('off', 'optional', 'mandatory')")
+ return value
+
+ @field_validator('environment_policy')
+ def environment_policy_validate_enum(cls, value):
+ """Validates the enum"""
+ if value is None:
+ return value
+
+ if value not in set(['off', 'optional', 'mandatory']):
+ raise ValueError("must be one of enum values ('off', 'optional', 'mandatory')")
+ return value
+
+ 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 GetOrganizationPasskey200Response 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of GetOrganizationPasskey200Response from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "message": obj.get("message"),
+ "code": obj.get("code"),
+ "enabled": obj.get("enabled"),
+ "policy": obj.get("policy"),
+ "is_override_environment_passkey_settings": obj.get("is_override_environment_passkey_settings"),
+ "environment_policy": obj.get("environment_policy")
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/get_organization_response.py b/kinde_sdk/management/models/get_organization_response.py
index 54f08426..631eb03e 100644
--- a/kinde_sdk/management/models/get_organization_response.py
+++ b/kinde_sdk/management/models/get_organization_response.py
@@ -58,8 +58,10 @@ class GetOrganizationResponse(BaseModel):
is_allow_registrations: Optional[StrictBool] = Field(default=None, description="Deprecated - Use 'is_auto_membership_enabled' instead")
sender_name: Optional[StrictStr] = Field(default=None, description="The name of the organization that will be used in emails")
sender_email: Optional[StrictStr] = Field(default=None, description="The email address that will be used in emails. Requires custom SMTP to be set up.")
+ is_suspended: Optional[StrictBool] = Field(default=None, description="Whether the organization is currently suspended or not.")
+ suspended_on: Optional[StrictStr] = Field(default=None, description="The date the organization was suspended in ISO 8601 format. Null if not suspended.")
billing: Optional[GetOrganizationResponseBilling] = None
- __properties: ClassVar[List[str]] = ["code", "name", "handle", "is_default", "external_id", "is_auto_membership_enabled", "logo", "logo_dark", "favicon_svg", "favicon_fallback", "allowed_domains", "link_color", "background_color", "button_color", "button_text_color", "link_color_dark", "background_color_dark", "button_text_color_dark", "button_color_dark", "button_border_radius", "card_border_radius", "input_border_radius", "theme_code", "color_scheme", "created_on", "is_allow_registrations", "sender_name", "sender_email", "billing"]
+ __properties: ClassVar[List[str]] = ["code", "name", "handle", "is_default", "external_id", "is_auto_membership_enabled", "logo", "logo_dark", "favicon_svg", "favicon_fallback", "allowed_domains", "link_color", "background_color", "button_color", "button_text_color", "link_color_dark", "background_color_dark", "button_text_color_dark", "button_color_dark", "button_border_radius", "card_border_radius", "input_border_radius", "theme_code", "color_scheme", "created_on", "is_allow_registrations", "sender_name", "sender_email", "is_suspended", "suspended_on", "billing"]
@field_validator('theme_code')
def theme_code_validate_enum(cls, value):
@@ -247,6 +249,11 @@ def to_dict(self) -> Dict[str, Any]:
if self.sender_email is None and "sender_email" in self.model_fields_set:
_dict['sender_email'] = None
+ # set to None if suspended_on (nullable) is None
+ # and model_fields_set contains the field
+ if self.suspended_on is None and "suspended_on" in self.model_fields_set:
+ _dict['suspended_on'] = None
+
return _dict
@classmethod
@@ -287,6 +294,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"is_allow_registrations": obj.get("is_allow_registrations"),
"sender_name": obj.get("sender_name"),
"sender_email": obj.get("sender_email"),
+ "is_suspended": obj.get("is_suspended"),
+ "suspended_on": obj.get("suspended_on"),
"billing": GetOrganizationResponseBilling.from_dict(obj["billing"]) if obj.get("billing") is not None else None
})
return _obj
diff --git a/kinde_sdk/management/models/get_organization_role_users_response.py b/kinde_sdk/management/models/get_organization_role_users_response.py
new file mode 100644
index 00000000..8f15fd93
--- /dev/null
+++ b/kinde_sdk/management/models/get_organization_role_users_response.py
@@ -0,0 +1,107 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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, Optional
+from kinde_sdk.management.models.get_organization_role_users_response_users_inner import GetOrganizationRoleUsersResponseUsersInner
+from typing import Optional, Set
+from typing_extensions import Self
+
+class GetOrganizationRoleUsersResponse(BaseModel):
+ """
+ GetOrganizationRoleUsersResponse
+ """ # noqa: E501
+ code: Optional[StrictStr] = Field(default=None, description="Response code.")
+ message: Optional[StrictStr] = Field(default=None, description="Response message.")
+ users: Optional[List[GetOrganizationRoleUsersResponseUsersInner]] = None
+ next_token: Optional[StrictStr] = Field(default=None, description="Pagination token.")
+ __properties: ClassVar[List[str]] = ["code", "message", "users", "next_token"]
+
+ 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 GetOrganizationRoleUsersResponse 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _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 users (list)
+ _items = []
+ if self.users:
+ for _item_users in self.users:
+ if _item_users:
+ _items.append(_item_users.to_dict())
+ _dict['users'] = _items
+ # set to None if next_token (nullable) is None
+ # and model_fields_set contains the field
+ if self.next_token is None and "next_token" in self.model_fields_set:
+ _dict['next_token'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of GetOrganizationRoleUsersResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "code": obj.get("code"),
+ "message": obj.get("message"),
+ "users": [GetOrganizationRoleUsersResponseUsersInner.from_dict(_item) for _item in obj["users"]] if obj.get("users") is not None else None,
+ "next_token": obj.get("next_token")
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/get_organization_role_users_response_users_inner.py b/kinde_sdk/management/models/get_organization_role_users_response_users_inner.py
new file mode 100644
index 00000000..dd685da1
--- /dev/null
+++ b/kinde_sdk/management/models/get_organization_role_users_response_users_inner.py
@@ -0,0 +1,88 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class GetOrganizationRoleUsersResponseUsersInner(BaseModel):
+ """
+ GetOrganizationRoleUsersResponseUsersInner
+ """ # noqa: E501
+ id: Optional[StrictStr] = Field(default=None, description="The user's ID.")
+ __properties: ClassVar[List[str]] = ["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 GetOrganizationRoleUsersResponseUsersInner 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of GetOrganizationRoleUsersResponseUsersInner from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "id": obj.get("id")
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/get_passkey200_response.py b/kinde_sdk/management/models/get_passkey200_response.py
new file mode 100644
index 00000000..d08a7be2
--- /dev/null
+++ b/kinde_sdk/management/models/get_passkey200_response.py
@@ -0,0 +1,104 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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, StrictBool, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class GetPasskey200Response(BaseModel):
+ """
+ GetPasskey200Response
+ """ # noqa: E501
+ message: Optional[StrictStr] = None
+ code: Optional[StrictStr] = None
+ enabled: Optional[StrictBool] = Field(default=None, description="Whether passkeys are enabled for this environment (`policy` is not `off`).")
+ policy: Optional[StrictStr] = Field(default=None, description="Environment passkey policy. `off` disables passkeys; `optional` enables passkeys and allows users to skip passkey setup after password sign-in; `mandatory` requires passkey setup after first password sign-in. ")
+ __properties: ClassVar[List[str]] = ["message", "code", "enabled", "policy"]
+
+ @field_validator('policy')
+ def policy_validate_enum(cls, value):
+ """Validates the enum"""
+ if value is None:
+ return value
+
+ if value not in set(['off', 'optional', 'mandatory']):
+ raise ValueError("must be one of enum values ('off', 'optional', 'mandatory')")
+ return value
+
+ 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 GetPasskey200Response 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of GetPasskey200Response from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "message": obj.get("message"),
+ "code": obj.get("code"),
+ "enabled": obj.get("enabled"),
+ "policy": obj.get("policy")
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/get_role_users_response.py b/kinde_sdk/management/models/get_role_users_response.py
new file mode 100644
index 00000000..4893ff69
--- /dev/null
+++ b/kinde_sdk/management/models/get_role_users_response.py
@@ -0,0 +1,107 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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, Optional
+from kinde_sdk.management.models.get_role_users_response_users_inner import GetRoleUsersResponseUsersInner
+from typing import Optional, Set
+from typing_extensions import Self
+
+class GetRoleUsersResponse(BaseModel):
+ """
+ GetRoleUsersResponse
+ """ # noqa: E501
+ code: Optional[StrictStr] = Field(default=None, description="Response code.")
+ message: Optional[StrictStr] = Field(default=None, description="Response message.")
+ users: Optional[List[GetRoleUsersResponseUsersInner]] = None
+ next_token: Optional[StrictStr] = Field(default=None, description="Pagination token.")
+ __properties: ClassVar[List[str]] = ["code", "message", "users", "next_token"]
+
+ 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 GetRoleUsersResponse 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _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 users (list)
+ _items = []
+ if self.users:
+ for _item_users in self.users:
+ if _item_users:
+ _items.append(_item_users.to_dict())
+ _dict['users'] = _items
+ # set to None if next_token (nullable) is None
+ # and model_fields_set contains the field
+ if self.next_token is None and "next_token" in self.model_fields_set:
+ _dict['next_token'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of GetRoleUsersResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "code": obj.get("code"),
+ "message": obj.get("message"),
+ "users": [GetRoleUsersResponseUsersInner.from_dict(_item) for _item in obj["users"]] if obj.get("users") is not None else None,
+ "next_token": obj.get("next_token")
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/get_role_users_response_users_inner.py b/kinde_sdk/management/models/get_role_users_response_users_inner.py
new file mode 100644
index 00000000..57d6dcc9
--- /dev/null
+++ b/kinde_sdk/management/models/get_role_users_response_users_inner.py
@@ -0,0 +1,90 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class GetRoleUsersResponseUsersInner(BaseModel):
+ """
+ GetRoleUsersResponseUsersInner
+ """ # noqa: E501
+ id: Optional[StrictStr] = Field(default=None, description="The user's ID.")
+ org_codes: Optional[List[StrictStr]] = Field(default=None, description="The organization codes where the user has this role.")
+ __properties: ClassVar[List[str]] = ["id", "org_codes"]
+
+ 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 GetRoleUsersResponseUsersInner 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of GetRoleUsersResponseUsersInner from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "id": obj.get("id"),
+ "org_codes": obj.get("org_codes")
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/get_system_permissions_response.py b/kinde_sdk/management/models/get_system_permissions_response.py
new file mode 100644
index 00000000..d8645a8d
--- /dev/null
+++ b/kinde_sdk/management/models/get_system_permissions_response.py
@@ -0,0 +1,107 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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, Optional
+from kinde_sdk.management.models.system_permissions import SystemPermissions
+from typing import Optional, Set
+from typing_extensions import Self
+
+class GetSystemPermissionsResponse(BaseModel):
+ """
+ GetSystemPermissionsResponse
+ """ # noqa: E501
+ code: Optional[StrictStr] = Field(default=None, description="Response code.")
+ message: Optional[StrictStr] = Field(default=None, description="Response message.")
+ system_permissions: Optional[List[SystemPermissions]] = None
+ next_token: Optional[StrictStr] = Field(default=None, description="Pagination token.")
+ __properties: ClassVar[List[str]] = ["code", "message", "system_permissions", "next_token"]
+
+ 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 GetSystemPermissionsResponse 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _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 system_permissions (list)
+ _items = []
+ if self.system_permissions:
+ for _item_system_permissions in self.system_permissions:
+ if _item_system_permissions:
+ _items.append(_item_system_permissions.to_dict())
+ _dict['system_permissions'] = _items
+ # set to None if next_token (nullable) is None
+ # and model_fields_set contains the field
+ if self.next_token is None and "next_token" in self.model_fields_set:
+ _dict['next_token'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of GetSystemPermissionsResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "code": obj.get("code"),
+ "message": obj.get("message"),
+ "system_permissions": [SystemPermissions.from_dict(_item) for _item in obj["system_permissions"]] if obj.get("system_permissions") is not None else None,
+ "next_token": obj.get("next_token")
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/identity.py b/kinde_sdk/management/models/identity.py
index d9923c69..44ab0f29 100644
--- a/kinde_sdk/management/models/identity.py
+++ b/kinde_sdk/management/models/identity.py
@@ -35,8 +35,9 @@ class Identity(BaseModel):
total_logins: Optional[StrictInt] = None
name: Optional[StrictStr] = Field(default=None, description="The value of the identity")
email: Optional[StrictStr] = Field(default=None, description="The associated email of the identity")
+ connection_id: Optional[StrictStr] = Field(default=None, description="The social or enterprise connection ID associated with the identity. Null for email, phone, username, and passkey identities.")
is_primary: Optional[StrictBool] = Field(default=None, description="Whether the identity is the primary identity for the user")
- __properties: ClassVar[List[str]] = ["id", "type", "is_confirmed", "created_on", "last_login_on", "total_logins", "name", "email", "is_primary"]
+ __properties: ClassVar[List[str]] = ["id", "type", "is_confirmed", "created_on", "last_login_on", "total_logins", "name", "email", "connection_id", "is_primary"]
model_config = ConfigDict(
populate_by_name=True,
@@ -77,6 +78,11 @@ def to_dict(self) -> Dict[str, Any]:
exclude=excluded_fields,
exclude_none=True,
)
+ # set to None if connection_id (nullable) is None
+ # and model_fields_set contains the field
+ if self.connection_id is None and "connection_id" in self.model_fields_set:
+ _dict['connection_id'] = None
+
# set to None if is_primary (nullable) is None
# and model_fields_set contains the field
if self.is_primary is None and "is_primary" in self.model_fields_set:
@@ -102,6 +108,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"total_logins": obj.get("total_logins"),
"name": obj.get("name"),
"email": obj.get("email"),
+ "connection_id": obj.get("connection_id"),
"is_primary": obj.get("is_primary")
})
return _obj
diff --git a/kinde_sdk/management/models/organization_invite.py b/kinde_sdk/management/models/organization_invite.py
new file mode 100644
index 00000000..f7fb91b4
--- /dev/null
+++ b/kinde_sdk/management/models/organization_invite.py
@@ -0,0 +1,134 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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 datetime import datetime
+from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from kinde_sdk.management.models.get_organization_invite_response_roles_inner import GetOrganizationInviteResponseRolesInner
+from typing import Optional, Set
+from typing_extensions import Self
+
+class OrganizationInvite(BaseModel):
+ """
+ OrganizationInvite
+ """ # noqa: E501
+ id: Optional[StrictStr] = Field(default=None, description="The invitation's unique identifier.")
+ code: Optional[StrictStr] = Field(default=None, description="The invitation's code.")
+ email: Optional[StrictStr] = Field(default=None, description="The email address of the invited user.")
+ first_name: Optional[StrictStr] = Field(default=None, description="The first name of the invited user.")
+ last_name: Optional[StrictStr] = Field(default=None, description="The last name of the invited user.")
+ full_name: Optional[StrictStr] = Field(default=None, description="The full name of the invited user.")
+ created_on: Optional[datetime] = Field(default=None, description="When the invitation was created.")
+ is_sent: Optional[StrictBool] = Field(default=None, description="Whether the invitation email was sent.")
+ accepted_on: Optional[datetime] = Field(default=None, description="When the invitation was accepted.")
+ roles: Optional[List[GetOrganizationInviteResponseRolesInner]] = Field(default=None, description="The roles assigned to the invitation.")
+ is_revoked: Optional[StrictBool] = Field(default=None, description="Whether the invitation has been revoked.")
+ invite_link: Optional[StrictStr] = Field(default=None, description="URL to share with the invitee to accept the invitation.")
+ __properties: ClassVar[List[str]] = ["id", "code", "email", "first_name", "last_name", "full_name", "created_on", "is_sent", "accepted_on", "roles", "is_revoked", "invite_link"]
+
+ 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 OrganizationInvite 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _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 roles (list)
+ _items = []
+ if self.roles:
+ for _item_roles in self.roles:
+ if _item_roles:
+ _items.append(_item_roles.to_dict())
+ _dict['roles'] = _items
+ # set to None if first_name (nullable) is None
+ # and model_fields_set contains the field
+ if self.first_name is None and "first_name" in self.model_fields_set:
+ _dict['first_name'] = None
+
+ # set to None if last_name (nullable) is None
+ # and model_fields_set contains the field
+ if self.last_name is None and "last_name" in self.model_fields_set:
+ _dict['last_name'] = None
+
+ # set to None if accepted_on (nullable) is None
+ # and model_fields_set contains the field
+ if self.accepted_on is None and "accepted_on" in self.model_fields_set:
+ _dict['accepted_on'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of OrganizationInvite from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "id": obj.get("id"),
+ "code": obj.get("code"),
+ "email": obj.get("email"),
+ "first_name": obj.get("first_name"),
+ "last_name": obj.get("last_name"),
+ "full_name": obj.get("full_name"),
+ "created_on": obj.get("created_on"),
+ "is_sent": obj.get("is_sent"),
+ "accepted_on": obj.get("accepted_on"),
+ "roles": [GetOrganizationInviteResponseRolesInner.from_dict(_item) for _item in obj["roles"]] if obj.get("roles") is not None else None,
+ "is_revoked": obj.get("is_revoked"),
+ "invite_link": obj.get("invite_link")
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/replace_connection_request_options_one_of.py b/kinde_sdk/management/models/replace_connection_request_options_one_of.py
index 3a10e79b..f021b099 100644
--- a/kinde_sdk/management/models/replace_connection_request_options_one_of.py
+++ b/kinde_sdk/management/models/replace_connection_request_options_one_of.py
@@ -38,7 +38,9 @@ class ReplaceConnectionRequestOptionsOneOf(BaseModel):
is_create_missing_user: Optional[StrictBool] = Field(default=None, description="Create a user record in Kinde if the user signing in does not exist.")
is_force_show_sso_button: Optional[StrictBool] = Field(default=None, description="Force showing the SSO button for this connection.")
upstream_params: Optional[Dict[str, Any]] = Field(default=None, description="Additional upstream parameters to pass to the identity provider.")
- __properties: ClassVar[List[str]] = ["client_id", "client_secret", "home_realm_domains", "entra_id_domain", "is_use_common_endpoint", "is_sync_user_profile_on_login", "is_retrieve_provider_user_groups", "is_extended_attributes_required", "is_create_missing_user", "is_force_show_sso_button", "upstream_params"]
+ is_use_custom_domain: Optional[StrictBool] = Field(default=None, description="Use custom domain callback URL.")
+ is_trusted: Optional[StrictBool] = Field(default=None, description="Trust this connection for account merging.")
+ __properties: ClassVar[List[str]] = ["client_id", "client_secret", "home_realm_domains", "entra_id_domain", "is_use_common_endpoint", "is_sync_user_profile_on_login", "is_retrieve_provider_user_groups", "is_extended_attributes_required", "is_create_missing_user", "is_force_show_sso_button", "upstream_params", "is_use_custom_domain", "is_trusted"]
model_config = ConfigDict(
populate_by_name=True,
@@ -101,7 +103,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"is_extended_attributes_required": obj.get("is_extended_attributes_required"),
"is_create_missing_user": obj.get("is_create_missing_user"),
"is_force_show_sso_button": obj.get("is_force_show_sso_button"),
- "upstream_params": obj.get("upstream_params")
+ "upstream_params": obj.get("upstream_params"),
+ "is_use_custom_domain": obj.get("is_use_custom_domain"),
+ "is_trusted": obj.get("is_trusted")
})
return _obj
diff --git a/kinde_sdk/management/models/replace_connection_request_options_one_of1.py b/kinde_sdk/management/models/replace_connection_request_options_one_of1.py
index 472e1085..92c51e29 100644
--- a/kinde_sdk/management/models/replace_connection_request_options_one_of1.py
+++ b/kinde_sdk/management/models/replace_connection_request_options_one_of1.py
@@ -18,7 +18,7 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr
+from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator
from typing import Any, ClassVar, Dict, List, Optional
from typing import Optional, Set
from typing_extensions import Self
@@ -30,15 +30,51 @@ class ReplaceConnectionRequestOptionsOneOf1(BaseModel):
home_realm_domains: Optional[List[StrictStr]] = Field(default=None, description="List of domains to restrict authentication.")
saml_entity_id: Optional[StrictStr] = Field(default=None, description="SAML Entity ID.")
saml_idp_metadata_url: Optional[StrictStr] = Field(default=None, description="URL for the IdP metadata.")
- saml_email_key_attr: Optional[StrictStr] = Field(default=None, description="Attribute key for the user’s email.")
- saml_first_name_key_attr: Optional[StrictStr] = Field(default=None, description="Attribute key for the user’s first name.")
- saml_last_name_key_attr: Optional[StrictStr] = Field(default=None, description="Attribute key for the user’s last name.")
- is_create_missing_user: Optional[StrictBool] = Field(default=None, description="Create user if they don’t exist.")
+ sign_request_algorithm: Optional[StrictStr] = Field(default=None, description="Algorithm used to sign SAML requests.")
+ protocol_binding: Optional[StrictStr] = Field(default=None, description="Protocol binding used to send SAML requests.")
+ name_id_format: Optional[StrictStr] = Field(default=None, description="Format for the Name ID used to identify users in SAML responses.")
+ saml_email_key_attr: Optional[StrictStr] = Field(default=None, description="Attribute key for the user's email.")
+ saml_user_id_key_attr: Optional[StrictStr] = Field(default=None, description="Attribute key for the user's ID.")
+ saml_first_name_key_attr: Optional[StrictStr] = Field(default=None, description="Attribute key for the user's first name.")
+ saml_last_name_key_attr: Optional[StrictStr] = Field(default=None, description="Attribute key for the user's last name.")
+ is_create_missing_user: Optional[StrictBool] = Field(default=None, description="Create user if they don't exist.")
is_force_show_sso_button: Optional[StrictBool] = Field(default=None, description="Force showing the SSO button for this connection.")
upstream_params: Optional[Dict[str, Any]] = Field(default=None, description="Additional upstream parameters to pass to the identity provider.")
saml_signing_certificate: Optional[StrictStr] = Field(default=None, description="Certificate for signing SAML requests.")
saml_signing_private_key: Optional[StrictStr] = Field(default=None, description="Private key associated with the signing certificate.")
- __properties: ClassVar[List[str]] = ["home_realm_domains", "saml_entity_id", "saml_idp_metadata_url", "saml_email_key_attr", "saml_first_name_key_attr", "saml_last_name_key_attr", "is_create_missing_user", "is_force_show_sso_button", "upstream_params", "saml_signing_certificate", "saml_signing_private_key"]
+ is_use_custom_domain: Optional[StrictBool] = Field(default=None, description="Use custom domain callback URL.")
+ is_trusted: Optional[StrictBool] = Field(default=None, description="Trust this connection for account merging.")
+ __properties: ClassVar[List[str]] = ["home_realm_domains", "saml_entity_id", "saml_idp_metadata_url", "sign_request_algorithm", "protocol_binding", "name_id_format", "saml_email_key_attr", "saml_user_id_key_attr", "saml_first_name_key_attr", "saml_last_name_key_attr", "is_create_missing_user", "is_force_show_sso_button", "upstream_params", "saml_signing_certificate", "saml_signing_private_key", "is_use_custom_domain", "is_trusted"]
+
+ @field_validator('sign_request_algorithm')
+ def sign_request_algorithm_validate_enum(cls, value):
+ """Validates the enum"""
+ if value is None:
+ return value
+
+ if value not in set(['RSA-SHA256', 'RSA-SHA1']):
+ raise ValueError("must be one of enum values ('RSA-SHA256', 'RSA-SHA1')")
+ return value
+
+ @field_validator('protocol_binding')
+ def protocol_binding_validate_enum(cls, value):
+ """Validates the enum"""
+ if value is None:
+ return value
+
+ if value not in set(['HTTP-REDIRECT', 'HTTP-POST']):
+ raise ValueError("must be one of enum values ('HTTP-REDIRECT', 'HTTP-POST')")
+ return value
+
+ @field_validator('name_id_format')
+ def name_id_format_validate_enum(cls, value):
+ """Validates the enum"""
+ if value is None:
+ return value
+
+ if value not in set(['Persistent', 'Transient', 'Email address', 'Unspecified']):
+ raise ValueError("must be one of enum values ('Persistent', 'Transient', 'Email address', 'Unspecified')")
+ return value
model_config = ConfigDict(
populate_by_name=True,
@@ -94,14 +130,20 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"home_realm_domains": obj.get("home_realm_domains"),
"saml_entity_id": obj.get("saml_entity_id"),
"saml_idp_metadata_url": obj.get("saml_idp_metadata_url"),
+ "sign_request_algorithm": obj.get("sign_request_algorithm"),
+ "protocol_binding": obj.get("protocol_binding"),
+ "name_id_format": obj.get("name_id_format"),
"saml_email_key_attr": obj.get("saml_email_key_attr"),
+ "saml_user_id_key_attr": obj.get("saml_user_id_key_attr"),
"saml_first_name_key_attr": obj.get("saml_first_name_key_attr"),
"saml_last_name_key_attr": obj.get("saml_last_name_key_attr"),
"is_create_missing_user": obj.get("is_create_missing_user"),
"is_force_show_sso_button": obj.get("is_force_show_sso_button"),
"upstream_params": obj.get("upstream_params"),
"saml_signing_certificate": obj.get("saml_signing_certificate"),
- "saml_signing_private_key": obj.get("saml_signing_private_key")
+ "saml_signing_private_key": obj.get("saml_signing_private_key"),
+ "is_use_custom_domain": obj.get("is_use_custom_domain"),
+ "is_trusted": obj.get("is_trusted")
})
return _obj
diff --git a/kinde_sdk/management/models/replace_mfa_request.py b/kinde_sdk/management/models/replace_mfa_request.py
index 7dbebc57..3e81fdd4 100644
--- a/kinde_sdk/management/models/replace_mfa_request.py
+++ b/kinde_sdk/management/models/replace_mfa_request.py
@@ -18,8 +18,8 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
-from typing import Any, ClassVar, Dict, List
+from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List, Optional
from typing import Optional, Set
from typing_extensions import Self
@@ -29,7 +29,8 @@ class ReplaceMFARequest(BaseModel):
""" # noqa: E501
policy: StrictStr = Field(description="Specifies whether MFA is required, optional, or not enforced.")
enabled_factors: List[StrictStr] = Field(description="The MFA methods to enable.")
- __properties: ClassVar[List[str]] = ["policy", "enabled_factors"]
+ is_recovery_codes_enabled: Optional[StrictBool] = Field(default=True, description="Determines whether recovery codes are shown to users during MFA setup for the environment.")
+ __properties: ClassVar[List[str]] = ["policy", "enabled_factors", "is_recovery_codes_enabled"]
@field_validator('policy')
def policy_validate_enum(cls, value):
@@ -98,7 +99,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
_obj = cls.model_validate({
"policy": obj.get("policy"),
- "enabled_factors": obj.get("enabled_factors")
+ "enabled_factors": obj.get("enabled_factors"),
+ "is_recovery_codes_enabled": obj.get("is_recovery_codes_enabled") if obj.get("is_recovery_codes_enabled") is not None else True
})
return _obj
diff --git a/kinde_sdk/management/models/replace_organization_mfa_request.py b/kinde_sdk/management/models/replace_organization_mfa_request.py
index c19065f2..8e409389 100644
--- a/kinde_sdk/management/models/replace_organization_mfa_request.py
+++ b/kinde_sdk/management/models/replace_organization_mfa_request.py
@@ -18,8 +18,8 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
-from typing import Any, ClassVar, Dict, List
+from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List, Optional
from typing import Optional, Set
from typing_extensions import Self
@@ -28,7 +28,8 @@ class ReplaceOrganizationMFARequest(BaseModel):
ReplaceOrganizationMFARequest
""" # noqa: E501
enabled_factors: List[StrictStr] = Field(description="The MFA methods to enable.")
- __properties: ClassVar[List[str]] = ["enabled_factors"]
+ is_recovery_codes_enabled: Optional[StrictBool] = Field(default=True, description="Determines whether recovery codes are shown to users during MFA setup for this specific organization. This overrides the environment-level setting.")
+ __properties: ClassVar[List[str]] = ["enabled_factors", "is_recovery_codes_enabled"]
@field_validator('enabled_factors')
def enabled_factors_validate_enum(cls, value):
@@ -89,7 +90,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
return cls.model_validate(obj)
_obj = cls.model_validate({
- "enabled_factors": obj.get("enabled_factors")
+ "enabled_factors": obj.get("enabled_factors"),
+ "is_recovery_codes_enabled": obj.get("is_recovery_codes_enabled") if obj.get("is_recovery_codes_enabled") is not None else True
})
return _obj
diff --git a/kinde_sdk/management/models/role_system_permissions_response.py b/kinde_sdk/management/models/role_system_permissions_response.py
new file mode 100644
index 00000000..1f73b767
--- /dev/null
+++ b/kinde_sdk/management/models/role_system_permissions_response.py
@@ -0,0 +1,107 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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, Optional
+from kinde_sdk.management.models.system_permissions import SystemPermissions
+from typing import Optional, Set
+from typing_extensions import Self
+
+class RoleSystemPermissionsResponse(BaseModel):
+ """
+ RoleSystemPermissionsResponse
+ """ # noqa: E501
+ code: Optional[StrictStr] = Field(default=None, description="Response code.")
+ message: Optional[StrictStr] = Field(default=None, description="Response message.")
+ system_permissions: Optional[List[SystemPermissions]] = None
+ next_token: Optional[StrictStr] = Field(default=None, description="Pagination token.")
+ __properties: ClassVar[List[str]] = ["code", "message", "system_permissions", "next_token"]
+
+ 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 RoleSystemPermissionsResponse 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _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 system_permissions (list)
+ _items = []
+ if self.system_permissions:
+ for _item_system_permissions in self.system_permissions:
+ if _item_system_permissions:
+ _items.append(_item_system_permissions.to_dict())
+ _dict['system_permissions'] = _items
+ # set to None if next_token (nullable) is None
+ # and model_fields_set contains the field
+ if self.next_token is None and "next_token" in self.model_fields_set:
+ _dict['next_token'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of RoleSystemPermissionsResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "code": obj.get("code"),
+ "message": obj.get("message"),
+ "system_permissions": [SystemPermissions.from_dict(_item) for _item in obj["system_permissions"]] if obj.get("system_permissions") is not None else None,
+ "next_token": obj.get("next_token")
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/set_user_password_request.py b/kinde_sdk/management/models/set_user_password_request.py
index 88467233..f8da3e04 100644
--- a/kinde_sdk/management/models/set_user_password_request.py
+++ b/kinde_sdk/management/models/set_user_password_request.py
@@ -18,7 +18,7 @@
import re # noqa: F401
import json
-from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator
+from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr, field_validator
from typing import Any, ClassVar, Dict, List, Optional
from typing import Optional, Set
from typing_extensions import Self
@@ -29,10 +29,12 @@ class SetUserPasswordRequest(BaseModel):
""" # noqa: E501
hashed_password: StrictStr = Field(description="The hashed password.")
hashing_method: Optional[StrictStr] = Field(default=None, description="The hashing method or algorithm used to encrypt the user’s password. Default is bcrypt.")
- salt: Optional[StrictStr] = Field(default=None, description="Extra characters added to passwords to make them stronger. Not required for bcrypt.")
+ salt: Optional[StrictStr] = Field(default=None, description="Extra characters added to passwords to make them stronger. Not required for bcrypt. Required for pbkdf2; provide the base64-encoded salt.")
salt_position: Optional[StrictStr] = Field(default=None, description="Position of salt in password string. Not required for bcrypt.")
+ iterations: Optional[StrictInt] = Field(default=None, description="The iteration count (factor) used to derive the hash. Optional for pbkdf2; when omitted, verification defaults to 24000 (the FusionAuth default factor).")
+ variant: Optional[StrictStr] = Field(default=None, description="The hashing variant. Required for pbkdf2 (e.g. salted-pbkdf2-hmac-sha256, salted-pbkdf2-hmac-sha256-512, salted-pbkdf2-hmac-sha512-512).")
is_temporary_password: Optional[StrictBool] = Field(default=None, description="The user will be prompted to set a new password after entering this one.")
- __properties: ClassVar[List[str]] = ["hashed_password", "hashing_method", "salt", "salt_position", "is_temporary_password"]
+ __properties: ClassVar[List[str]] = ["hashed_password", "hashing_method", "salt", "salt_position", "iterations", "variant", "is_temporary_password"]
@field_validator('hashing_method')
def hashing_method_validate_enum(cls, value):
@@ -40,8 +42,8 @@ def hashing_method_validate_enum(cls, value):
if value is None:
return value
- if value not in set(['bcrypt', 'crypt', 'md5', 'wordpress']):
- raise ValueError("must be one of enum values ('bcrypt', 'crypt', 'md5', 'wordpress')")
+ if value not in set(['bcrypt', 'crypt', 'md5', 'sha256', 'wordpress', 'pbkdf2']):
+ raise ValueError("must be one of enum values ('bcrypt', 'crypt', 'md5', 'sha256', 'wordpress', 'pbkdf2')")
return value
@field_validator('salt_position')
@@ -109,6 +111,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"hashing_method": obj.get("hashing_method"),
"salt": obj.get("salt"),
"salt_position": obj.get("salt_position"),
+ "iterations": obj.get("iterations"),
+ "variant": obj.get("variant"),
"is_temporary_password": obj.get("is_temporary_password")
})
return _obj
diff --git a/kinde_sdk/management/models/system_permissions.py b/kinde_sdk/management/models/system_permissions.py
new file mode 100644
index 00000000..4c06b998
--- /dev/null
+++ b/kinde_sdk/management/models/system_permissions.py
@@ -0,0 +1,94 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class SystemPermissions(BaseModel):
+ """
+ SystemPermissions
+ """ # noqa: E501
+ id: Optional[StrictStr] = Field(default=None, description="The system permission's ID.")
+ key: Optional[StrictStr] = Field(default=None, description="The system permission identifier to use in code.")
+ name: Optional[StrictStr] = Field(default=None, description="The system permission's name.")
+ description: Optional[StrictStr] = Field(default=None, description="The system permission's description.")
+ __properties: ClassVar[List[str]] = ["id", "key", "name", "description"]
+
+ 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 SystemPermissions 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of SystemPermissions from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "id": obj.get("id"),
+ "key": obj.get("key"),
+ "name": obj.get("name"),
+ "description": obj.get("description")
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/update_connection_request_options.py b/kinde_sdk/management/models/update_connection_request_options.py
index 41c934bd..67f9506a 100644
--- a/kinde_sdk/management/models/update_connection_request_options.py
+++ b/kinde_sdk/management/models/update_connection_request_options.py
@@ -19,13 +19,13 @@
from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
from typing import Any, List, Optional
from kinde_sdk.management.models.create_connection_request_options_one_of import CreateConnectionRequestOptionsOneOf
-from kinde_sdk.management.models.replace_connection_request_options_one_of1 import ReplaceConnectionRequestOptionsOneOf1
from kinde_sdk.management.models.update_connection_request_options_one_of import UpdateConnectionRequestOptionsOneOf
+from kinde_sdk.management.models.update_connection_request_options_one_of1 import UpdateConnectionRequestOptionsOneOf1
from pydantic import StrictStr, Field
from typing import Union, List, Set, Optional, Dict
from typing_extensions import Literal, Self
-UPDATECONNECTIONREQUESTOPTIONS_ONE_OF_SCHEMAS = ["CreateConnectionRequestOptionsOneOf", "ReplaceConnectionRequestOptionsOneOf1", "UpdateConnectionRequestOptionsOneOf"]
+UPDATECONNECTIONREQUESTOPTIONS_ONE_OF_SCHEMAS = ["CreateConnectionRequestOptionsOneOf", "UpdateConnectionRequestOptionsOneOf", "UpdateConnectionRequestOptionsOneOf1"]
class UpdateConnectionRequestOptions(BaseModel):
"""
@@ -35,10 +35,10 @@ class UpdateConnectionRequestOptions(BaseModel):
oneof_schema_1_validator: Optional[CreateConnectionRequestOptionsOneOf] = None
# data type: UpdateConnectionRequestOptionsOneOf
oneof_schema_2_validator: Optional[UpdateConnectionRequestOptionsOneOf] = None
- # data type: ReplaceConnectionRequestOptionsOneOf1
- oneof_schema_3_validator: Optional[ReplaceConnectionRequestOptionsOneOf1] = None
- actual_instance: Optional[Union[CreateConnectionRequestOptionsOneOf, ReplaceConnectionRequestOptionsOneOf1, UpdateConnectionRequestOptionsOneOf]] = None
- one_of_schemas: Set[str] = { "CreateConnectionRequestOptionsOneOf", "ReplaceConnectionRequestOptionsOneOf1", "UpdateConnectionRequestOptionsOneOf" }
+ # data type: UpdateConnectionRequestOptionsOneOf1
+ oneof_schema_3_validator: Optional[UpdateConnectionRequestOptionsOneOf1] = None
+ actual_instance: Optional[Union[CreateConnectionRequestOptionsOneOf, UpdateConnectionRequestOptionsOneOf, UpdateConnectionRequestOptionsOneOf1]] = None
+ one_of_schemas: Set[str] = { "CreateConnectionRequestOptionsOneOf", "UpdateConnectionRequestOptionsOneOf", "UpdateConnectionRequestOptionsOneOf1" }
model_config = ConfigDict(
validate_assignment=True,
@@ -71,17 +71,17 @@ def actual_instance_must_validate_oneof(cls, v):
error_messages.append(f"Error! Input type `{type(v)}` is not `UpdateConnectionRequestOptionsOneOf`")
else:
match += 1
- # validate data type: ReplaceConnectionRequestOptionsOneOf1
- if not isinstance(v, ReplaceConnectionRequestOptionsOneOf1):
- error_messages.append(f"Error! Input type `{type(v)}` is not `ReplaceConnectionRequestOptionsOneOf1`")
+ # validate data type: UpdateConnectionRequestOptionsOneOf1
+ if not isinstance(v, UpdateConnectionRequestOptionsOneOf1):
+ error_messages.append(f"Error! Input type `{type(v)}` is not `UpdateConnectionRequestOptionsOneOf1`")
else:
match += 1
if match > 1:
# more than 1 match
- raise ValueError("Multiple matches found when setting `actual_instance` in UpdateConnectionRequestOptions with oneOf schemas: CreateConnectionRequestOptionsOneOf, ReplaceConnectionRequestOptionsOneOf1, UpdateConnectionRequestOptionsOneOf. Details: " + ", ".join(error_messages))
+ raise ValueError("Multiple matches found when setting `actual_instance` in UpdateConnectionRequestOptions with oneOf schemas: CreateConnectionRequestOptionsOneOf, UpdateConnectionRequestOptionsOneOf, UpdateConnectionRequestOptionsOneOf1. Details: " + ", ".join(error_messages))
elif match == 0:
# no match
- raise ValueError("No match found when setting `actual_instance` in UpdateConnectionRequestOptions with oneOf schemas: CreateConnectionRequestOptionsOneOf, ReplaceConnectionRequestOptionsOneOf1, UpdateConnectionRequestOptionsOneOf. Details: " + ", ".join(error_messages))
+ raise ValueError("No match found when setting `actual_instance` in UpdateConnectionRequestOptions with oneOf schemas: CreateConnectionRequestOptionsOneOf, UpdateConnectionRequestOptionsOneOf, UpdateConnectionRequestOptionsOneOf1. Details: " + ", ".join(error_messages))
else:
return v
@@ -108,19 +108,19 @@ def from_json(cls, json_str: str) -> Self:
match += 1
except (ValidationError, ValueError) as e:
error_messages.append(str(e))
- # deserialize data into ReplaceConnectionRequestOptionsOneOf1
+ # deserialize data into UpdateConnectionRequestOptionsOneOf1
try:
- instance.actual_instance = ReplaceConnectionRequestOptionsOneOf1.from_json(json_str)
+ instance.actual_instance = UpdateConnectionRequestOptionsOneOf1.from_json(json_str)
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 UpdateConnectionRequestOptions with oneOf schemas: CreateConnectionRequestOptionsOneOf, ReplaceConnectionRequestOptionsOneOf1, UpdateConnectionRequestOptionsOneOf. Details: " + ", ".join(error_messages))
+ raise ValueError("Multiple matches found when deserializing the JSON string into UpdateConnectionRequestOptions with oneOf schemas: CreateConnectionRequestOptionsOneOf, UpdateConnectionRequestOptionsOneOf, UpdateConnectionRequestOptionsOneOf1. Details: " + ", ".join(error_messages))
elif match == 0:
# no match
- raise ValueError("No match found when deserializing the JSON string into UpdateConnectionRequestOptions with oneOf schemas: CreateConnectionRequestOptionsOneOf, ReplaceConnectionRequestOptionsOneOf1, UpdateConnectionRequestOptionsOneOf. Details: " + ", ".join(error_messages))
+ raise ValueError("No match found when deserializing the JSON string into UpdateConnectionRequestOptions with oneOf schemas: CreateConnectionRequestOptionsOneOf, UpdateConnectionRequestOptionsOneOf, UpdateConnectionRequestOptionsOneOf1. Details: " + ", ".join(error_messages))
else:
return instance
@@ -134,7 +134,7 @@ def to_json(self) -> str:
else:
return json.dumps(self.actual_instance)
- def to_dict(self) -> Optional[Union[Dict[str, Any], CreateConnectionRequestOptionsOneOf, ReplaceConnectionRequestOptionsOneOf1, UpdateConnectionRequestOptionsOneOf]]:
+ def to_dict(self) -> Optional[Union[Dict[str, Any], CreateConnectionRequestOptionsOneOf, UpdateConnectionRequestOptionsOneOf, UpdateConnectionRequestOptionsOneOf1]]:
"""Returns the dict representation of the actual instance"""
if self.actual_instance is None:
return None
diff --git a/kinde_sdk/management/models/update_connection_request_options_one_of.py b/kinde_sdk/management/models/update_connection_request_options_one_of.py
index c4cd2e6b..40664de6 100644
--- a/kinde_sdk/management/models/update_connection_request_options_one_of.py
+++ b/kinde_sdk/management/models/update_connection_request_options_one_of.py
@@ -38,7 +38,9 @@ class UpdateConnectionRequestOptionsOneOf(BaseModel):
is_create_missing_user: Optional[StrictBool] = Field(default=None, description="Create users if they don't exist in the system.")
is_force_show_sso_button: Optional[StrictBool] = Field(default=None, description="Force showing the SSO button for this connection.")
upstream_params: Optional[Dict[str, Any]] = Field(default=None, description="Additional upstream parameters to pass to the identity provider.")
- __properties: ClassVar[List[str]] = ["client_id", "client_secret", "home_realm_domains", "entra_id_domain", "is_use_common_endpoint", "is_sync_user_profile_on_login", "is_retrieve_provider_user_groups", "is_extended_attributes_required", "is_create_missing_user", "is_force_show_sso_button", "upstream_params"]
+ is_use_custom_domain: Optional[StrictBool] = Field(default=None, description="Use custom domain callback URL.")
+ is_trusted: Optional[StrictBool] = Field(default=None, description="Trust this connection for account merging.")
+ __properties: ClassVar[List[str]] = ["client_id", "client_secret", "home_realm_domains", "entra_id_domain", "is_use_common_endpoint", "is_sync_user_profile_on_login", "is_retrieve_provider_user_groups", "is_extended_attributes_required", "is_create_missing_user", "is_force_show_sso_button", "upstream_params", "is_use_custom_domain", "is_trusted"]
model_config = ConfigDict(
populate_by_name=True,
@@ -101,7 +103,9 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"is_extended_attributes_required": obj.get("is_extended_attributes_required"),
"is_create_missing_user": obj.get("is_create_missing_user"),
"is_force_show_sso_button": obj.get("is_force_show_sso_button"),
- "upstream_params": obj.get("upstream_params")
+ "upstream_params": obj.get("upstream_params"),
+ "is_use_custom_domain": obj.get("is_use_custom_domain"),
+ "is_trusted": obj.get("is_trusted")
})
return _obj
diff --git a/kinde_sdk/management/models/update_connection_request_options_one_of1.py b/kinde_sdk/management/models/update_connection_request_options_one_of1.py
new file mode 100644
index 00000000..ff709ec5
--- /dev/null
+++ b/kinde_sdk/management/models/update_connection_request_options_one_of1.py
@@ -0,0 +1,152 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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, StrictBool, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class UpdateConnectionRequestOptionsOneOf1(BaseModel):
+ """
+ SAML connection options (e.g., Cloudflare SAML).
+ """ # noqa: E501
+ home_realm_domains: Optional[List[StrictStr]] = Field(default=None, description="List of domains to restrict authentication.")
+ saml_entity_id: Optional[StrictStr] = Field(default=None, description="SAML Entity ID.")
+ saml_idp_metadata_url: Optional[StrictStr] = Field(default=None, description="URL for the IdP metadata.")
+ saml_sign_in_url: Optional[StrictStr] = Field(default=None, description="Override the default SSO endpoint with a URL your IdP recognizes.")
+ sign_request_algorithm: Optional[StrictStr] = Field(default=None, description="Algorithm used to sign SAML requests.")
+ protocol_binding: Optional[StrictStr] = Field(default=None, description="Protocol binding used to send SAML requests.")
+ name_id_format: Optional[StrictStr] = Field(default=None, description="Format for the Name ID used to identify users in SAML responses.")
+ saml_email_key_attr: Optional[StrictStr] = Field(default=None, description="Attribute key for the user's email.")
+ saml_user_id_key_attr: Optional[StrictStr] = Field(default=None, description="Attribute key for the user's ID.")
+ saml_first_name_key_attr: Optional[StrictStr] = Field(default=None, description="Attribute key for the user's first name.")
+ saml_last_name_key_attr: Optional[StrictStr] = Field(default=None, description="Attribute key for the user's last name.")
+ is_create_missing_user: Optional[StrictBool] = Field(default=None, description="Create user if they don't exist.")
+ is_force_show_sso_button: Optional[StrictBool] = Field(default=None, description="Force showing the SSO button for this connection.")
+ upstream_params: Optional[Dict[str, Any]] = Field(default=None, description="Additional upstream parameters to pass to the identity provider.")
+ saml_signing_certificate: Optional[StrictStr] = Field(default=None, description="Certificate for signing SAML requests.")
+ saml_signing_private_key: Optional[StrictStr] = Field(default=None, description="Private key associated with the signing certificate.")
+ is_use_custom_domain: Optional[StrictBool] = Field(default=None, description="Use custom domain callback URL.")
+ is_trusted: Optional[StrictBool] = Field(default=None, description="Trust this connection for account merging.")
+ __properties: ClassVar[List[str]] = ["home_realm_domains", "saml_entity_id", "saml_idp_metadata_url", "saml_sign_in_url", "sign_request_algorithm", "protocol_binding", "name_id_format", "saml_email_key_attr", "saml_user_id_key_attr", "saml_first_name_key_attr", "saml_last_name_key_attr", "is_create_missing_user", "is_force_show_sso_button", "upstream_params", "saml_signing_certificate", "saml_signing_private_key", "is_use_custom_domain", "is_trusted"]
+
+ @field_validator('sign_request_algorithm')
+ def sign_request_algorithm_validate_enum(cls, value):
+ """Validates the enum"""
+ if value is None:
+ return value
+
+ if value not in set(['RSA-SHA256', 'RSA-SHA1']):
+ raise ValueError("must be one of enum values ('RSA-SHA256', 'RSA-SHA1')")
+ return value
+
+ @field_validator('protocol_binding')
+ def protocol_binding_validate_enum(cls, value):
+ """Validates the enum"""
+ if value is None:
+ return value
+
+ if value not in set(['HTTP-REDIRECT', 'HTTP-POST']):
+ raise ValueError("must be one of enum values ('HTTP-REDIRECT', 'HTTP-POST')")
+ return value
+
+ @field_validator('name_id_format')
+ def name_id_format_validate_enum(cls, value):
+ """Validates the enum"""
+ if value is None:
+ return value
+
+ if value not in set(['Persistent', 'Transient', 'Email address', 'Unspecified']):
+ raise ValueError("must be one of enum values ('Persistent', 'Transient', 'Email address', 'Unspecified')")
+ return value
+
+ 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 UpdateConnectionRequestOptionsOneOf1 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of UpdateConnectionRequestOptionsOneOf1 from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "home_realm_domains": obj.get("home_realm_domains"),
+ "saml_entity_id": obj.get("saml_entity_id"),
+ "saml_idp_metadata_url": obj.get("saml_idp_metadata_url"),
+ "saml_sign_in_url": obj.get("saml_sign_in_url"),
+ "sign_request_algorithm": obj.get("sign_request_algorithm"),
+ "protocol_binding": obj.get("protocol_binding"),
+ "name_id_format": obj.get("name_id_format"),
+ "saml_email_key_attr": obj.get("saml_email_key_attr"),
+ "saml_user_id_key_attr": obj.get("saml_user_id_key_attr"),
+ "saml_first_name_key_attr": obj.get("saml_first_name_key_attr"),
+ "saml_last_name_key_attr": obj.get("saml_last_name_key_attr"),
+ "is_create_missing_user": obj.get("is_create_missing_user"),
+ "is_force_show_sso_button": obj.get("is_force_show_sso_button"),
+ "upstream_params": obj.get("upstream_params"),
+ "saml_signing_certificate": obj.get("saml_signing_certificate"),
+ "saml_signing_private_key": obj.get("saml_signing_private_key"),
+ "is_use_custom_domain": obj.get("is_use_custom_domain"),
+ "is_trusted": obj.get("is_trusted")
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/update_directory_request.py b/kinde_sdk/management/models/update_directory_request.py
new file mode 100644
index 00000000..7992c85f
--- /dev/null
+++ b/kinde_sdk/management/models/update_directory_request.py
@@ -0,0 +1,88 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class UpdateDirectoryRequest(BaseModel):
+ """
+ UpdateDirectoryRequest
+ """ # noqa: E501
+ directory_name: Optional[StrictStr] = Field(default=None, description="A descriptive name for the SCIM directory.")
+ __properties: ClassVar[List[str]] = ["directory_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 UpdateDirectoryRequest 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of UpdateDirectoryRequest from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "directory_name": obj.get("directory_name")
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/update_directory_response.py b/kinde_sdk/management/models/update_directory_response.py
new file mode 100644
index 00000000..16216871
--- /dev/null
+++ b/kinde_sdk/management/models/update_directory_response.py
@@ -0,0 +1,96 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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, Optional
+from kinde_sdk.management.models.directory import Directory
+from typing import Optional, Set
+from typing_extensions import Self
+
+class UpdateDirectoryResponse(BaseModel):
+ """
+ UpdateDirectoryResponse
+ """ # noqa: E501
+ code: Optional[StrictStr] = Field(default=None, description="Response code.")
+ message: Optional[StrictStr] = Field(default=None, description="Response message.")
+ directory: Optional[Directory] = None
+ __properties: ClassVar[List[str]] = ["code", "message", "directory"]
+
+ 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 UpdateDirectoryResponse 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # override the default output from pydantic by calling `to_dict()` of directory
+ if self.directory:
+ _dict['directory'] = self.directory.to_dict()
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of UpdateDirectoryResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "code": obj.get("code"),
+ "message": obj.get("message"),
+ "directory": Directory.from_dict(obj["directory"]) if obj.get("directory") is not None else None
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/update_organization_passkey200_response.py b/kinde_sdk/management/models/update_organization_passkey200_response.py
new file mode 100644
index 00000000..7931fe8a
--- /dev/null
+++ b/kinde_sdk/management/models/update_organization_passkey200_response.py
@@ -0,0 +1,106 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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, StrictBool, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class UpdateOrganizationPasskey200Response(BaseModel):
+ """
+ UpdateOrganizationPasskey200Response
+ """ # noqa: E501
+ message: Optional[StrictStr] = None
+ code: Optional[StrictStr] = None
+ enabled: Optional[StrictBool] = None
+ policy: Optional[StrictStr] = None
+ is_override_environment_passkey_settings: Optional[StrictBool] = None
+ __properties: ClassVar[List[str]] = ["message", "code", "enabled", "policy", "is_override_environment_passkey_settings"]
+
+ @field_validator('policy')
+ def policy_validate_enum(cls, value):
+ """Validates the enum"""
+ if value is None:
+ return value
+
+ if value not in set(['off', 'optional', 'mandatory']):
+ raise ValueError("must be one of enum values ('off', 'optional', 'mandatory')")
+ return value
+
+ 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 UpdateOrganizationPasskey200Response 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of UpdateOrganizationPasskey200Response from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "message": obj.get("message"),
+ "code": obj.get("code"),
+ "enabled": obj.get("enabled"),
+ "policy": obj.get("policy"),
+ "is_override_environment_passkey_settings": obj.get("is_override_environment_passkey_settings")
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/update_organization_passkey_request.py b/kinde_sdk/management/models/update_organization_passkey_request.py
new file mode 100644
index 00000000..fbd1c20e
--- /dev/null
+++ b/kinde_sdk/management/models/update_organization_passkey_request.py
@@ -0,0 +1,100 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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, StrictBool, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class UpdateOrganizationPasskeyRequest(BaseModel):
+ """
+ UpdateOrganizationPasskeyRequest
+ """ # noqa: E501
+ policy: Optional[StrictStr] = Field(default=None, description="Passkey policy when overriding the environment default.")
+ is_override_environment_passkey_settings: Optional[StrictBool] = Field(default=None, description="Whether to use a custom passkey policy for this organization. Set to false to revert to the environment default.")
+ __properties: ClassVar[List[str]] = ["policy", "is_override_environment_passkey_settings"]
+
+ @field_validator('policy')
+ def policy_validate_enum(cls, value):
+ """Validates the enum"""
+ if value is None:
+ return value
+
+ if value not in set(['off', 'optional', 'mandatory']):
+ raise ValueError("must be one of enum values ('off', 'optional', 'mandatory')")
+ return value
+
+ 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 UpdateOrganizationPasskeyRequest 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of UpdateOrganizationPasskeyRequest from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "policy": obj.get("policy"),
+ "is_override_environment_passkey_settings": obj.get("is_override_environment_passkey_settings")
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/update_organization_request.py b/kinde_sdk/management/models/update_organization_request.py
index c1dabb01..31376477 100644
--- a/kinde_sdk/management/models/update_organization_request.py
+++ b/kinde_sdk/management/models/update_organization_request.py
@@ -40,13 +40,15 @@ class UpdateOrganizationRequest(BaseModel):
theme_code: Optional[StrictStr] = Field(default=None, description="The organization's brand settings - theme/mode.")
handle: Optional[StrictStr] = Field(default=None, description="The organization's handle.")
is_allow_registrations: Optional[StrictBool] = Field(default=None, description="Deprecated - Use 'is_auto_membership_enabled' instead.")
+ is_auto_membership_enabled: Optional[StrictBool] = Field(default=None, description="If users become members of this organization when the org code is supplied during authentication.")
is_auto_join_domain_list: Optional[StrictBool] = Field(default=None, description="Users can sign up to this organization.")
allowed_domains: Optional[List[StrictStr]] = Field(default=None, description="Domains allowed for self-sign up to this environment.")
is_enable_advanced_orgs: Optional[StrictBool] = Field(default=None, description="Activate advanced organization features.")
is_enforce_mfa: Optional[StrictBool] = Field(default=None, description="Enforce MFA for all users in this organization.")
sender_name: Optional[StrictStr] = Field(default=None, description="The name of the organization that will be used in emails")
sender_email: Optional[StrictStr] = Field(default=None, description="The email address that will be used in emails. Requires custom SMTP to be set up.")
- __properties: ClassVar[List[str]] = ["name", "external_id", "background_color", "button_color", "button_text_color", "link_color", "background_color_dark", "button_color_dark", "button_text_color_dark", "link_color_dark", "theme_code", "handle", "is_allow_registrations", "is_auto_join_domain_list", "allowed_domains", "is_enable_advanced_orgs", "is_enforce_mfa", "sender_name", "sender_email"]
+ is_suspended: Optional[StrictBool] = Field(default=None, description="Whether to suspend or unsuspend the organization. Setting to true suspends the organization; setting to false unsuspends it. The default organization cannot be suspended.")
+ __properties: ClassVar[List[str]] = ["name", "external_id", "background_color", "button_color", "button_text_color", "link_color", "background_color_dark", "button_color_dark", "button_text_color_dark", "link_color_dark", "theme_code", "handle", "is_allow_registrations", "is_auto_membership_enabled", "is_auto_join_domain_list", "allowed_domains", "is_enable_advanced_orgs", "is_enforce_mfa", "sender_name", "sender_email", "is_suspended"]
@field_validator('theme_code')
def theme_code_validate_enum(cls, value):
@@ -132,12 +134,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"theme_code": obj.get("theme_code"),
"handle": obj.get("handle"),
"is_allow_registrations": obj.get("is_allow_registrations"),
+ "is_auto_membership_enabled": obj.get("is_auto_membership_enabled"),
"is_auto_join_domain_list": obj.get("is_auto_join_domain_list"),
"allowed_domains": obj.get("allowed_domains"),
"is_enable_advanced_orgs": obj.get("is_enable_advanced_orgs"),
"is_enforce_mfa": obj.get("is_enforce_mfa"),
"sender_name": obj.get("sender_name"),
- "sender_email": obj.get("sender_email")
+ "sender_email": obj.get("sender_email"),
+ "is_suspended": obj.get("is_suspended")
})
return _obj
diff --git a/kinde_sdk/management/models/update_passkey200_response.py b/kinde_sdk/management/models/update_passkey200_response.py
new file mode 100644
index 00000000..78203f78
--- /dev/null
+++ b/kinde_sdk/management/models/update_passkey200_response.py
@@ -0,0 +1,104 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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, StrictBool, StrictStr, field_validator
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class UpdatePasskey200Response(BaseModel):
+ """
+ UpdatePasskey200Response
+ """ # noqa: E501
+ message: Optional[StrictStr] = None
+ code: Optional[StrictStr] = None
+ enabled: Optional[StrictBool] = None
+ policy: Optional[StrictStr] = None
+ __properties: ClassVar[List[str]] = ["message", "code", "enabled", "policy"]
+
+ @field_validator('policy')
+ def policy_validate_enum(cls, value):
+ """Validates the enum"""
+ if value is None:
+ return value
+
+ if value not in set(['off', 'optional', 'mandatory']):
+ raise ValueError("must be one of enum values ('off', 'optional', 'mandatory')")
+ return value
+
+ 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 UpdatePasskey200Response 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of UpdatePasskey200Response from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "message": obj.get("message"),
+ "code": obj.get("code"),
+ "enabled": obj.get("enabled"),
+ "policy": obj.get("policy")
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/update_passkey_request.py b/kinde_sdk/management/models/update_passkey_request.py
new file mode 100644
index 00000000..8c91ee3e
--- /dev/null
+++ b/kinde_sdk/management/models/update_passkey_request.py
@@ -0,0 +1,95 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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, field_validator
+from typing import Any, ClassVar, Dict, List
+from typing import Optional, Set
+from typing_extensions import Self
+
+class UpdatePasskeyRequest(BaseModel):
+ """
+ UpdatePasskeyRequest
+ """ # noqa: E501
+ policy: StrictStr = Field(description="Environment passkey policy.")
+ __properties: ClassVar[List[str]] = ["policy"]
+
+ @field_validator('policy')
+ def policy_validate_enum(cls, value):
+ """Validates the enum"""
+ if value not in set(['off', 'optional', 'mandatory']):
+ raise ValueError("must be one of enum values ('off', 'optional', 'mandatory')")
+ return value
+
+ 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 UpdatePasskeyRequest 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of UpdatePasskeyRequest from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "policy": obj.get("policy")
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/update_role_system_permissions_request.py b/kinde_sdk/management/models/update_role_system_permissions_request.py
new file mode 100644
index 00000000..9256b2ae
--- /dev/null
+++ b/kinde_sdk/management/models/update_role_system_permissions_request.py
@@ -0,0 +1,96 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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
+from typing import Any, ClassVar, Dict, List, Optional
+from kinde_sdk.management.models.update_role_system_permissions_request_system_permissions_inner import UpdateRoleSystemPermissionsRequestSystemPermissionsInner
+from typing import Optional, Set
+from typing_extensions import Self
+
+class UpdateRoleSystemPermissionsRequest(BaseModel):
+ """
+ UpdateRoleSystemPermissionsRequest
+ """ # noqa: E501
+ system_permissions: Optional[List[UpdateRoleSystemPermissionsRequestSystemPermissionsInner]] = Field(default=None, description="System permissions to add or remove from the role.")
+ __properties: ClassVar[List[str]] = ["system_permissions"]
+
+ 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 UpdateRoleSystemPermissionsRequest 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _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 system_permissions (list)
+ _items = []
+ if self.system_permissions:
+ for _item_system_permissions in self.system_permissions:
+ if _item_system_permissions:
+ _items.append(_item_system_permissions.to_dict())
+ _dict['system_permissions'] = _items
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of UpdateRoleSystemPermissionsRequest from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "system_permissions": [UpdateRoleSystemPermissionsRequestSystemPermissionsInner.from_dict(_item) for _item in obj["system_permissions"]] if obj.get("system_permissions") is not None else None
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/update_role_system_permissions_request_system_permissions_inner.py b/kinde_sdk/management/models/update_role_system_permissions_request_system_permissions_inner.py
new file mode 100644
index 00000000..9a799c6a
--- /dev/null
+++ b/kinde_sdk/management/models/update_role_system_permissions_request_system_permissions_inner.py
@@ -0,0 +1,90 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class UpdateRoleSystemPermissionsRequestSystemPermissionsInner(BaseModel):
+ """
+ UpdateRoleSystemPermissionsRequestSystemPermissionsInner
+ """ # noqa: E501
+ id: Optional[StrictStr] = Field(default=None, description="The system permission id.")
+ operation: Optional[StrictStr] = Field(default=None, description="Optional operation, set to 'delete' to remove the system permission from the role.")
+ __properties: ClassVar[List[str]] = ["id", "operation"]
+
+ 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 UpdateRoleSystemPermissionsRequestSystemPermissionsInner 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of UpdateRoleSystemPermissionsRequestSystemPermissionsInner from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "id": obj.get("id"),
+ "operation": obj.get("operation")
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/update_role_system_permissions_response.py b/kinde_sdk/management/models/update_role_system_permissions_response.py
new file mode 100644
index 00000000..2fba7b0b
--- /dev/null
+++ b/kinde_sdk/management/models/update_role_system_permissions_response.py
@@ -0,0 +1,94 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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, StrictStr
+from typing import Any, ClassVar, Dict, List, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class UpdateRoleSystemPermissionsResponse(BaseModel):
+ """
+ UpdateRoleSystemPermissionsResponse
+ """ # noqa: E501
+ code: Optional[StrictStr] = None
+ message: Optional[StrictStr] = None
+ system_permissions_added: Optional[List[StrictStr]] = None
+ system_permissions_removed: Optional[List[StrictStr]] = None
+ __properties: ClassVar[List[str]] = ["code", "message", "system_permissions_added", "system_permissions_removed"]
+
+ 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 UpdateRoleSystemPermissionsResponse 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of UpdateRoleSystemPermissionsResponse from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "code": obj.get("code"),
+ "message": obj.get("message"),
+ "system_permissions_added": obj.get("system_permissions_added"),
+ "system_permissions_removed": obj.get("system_permissions_removed")
+ })
+ return _obj
+
+
diff --git a/kinde_sdk/management/models/users_response_users_inner.py b/kinde_sdk/management/models/users_response_users_inner.py
index 0999abc4..b59f690e 100644
--- a/kinde_sdk/management/models/users_response_users_inner.py
+++ b/kinde_sdk/management/models/users_response_users_inner.py
@@ -20,8 +20,8 @@
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr
from typing import Any, ClassVar, Dict, List, Optional
-from kinde_sdk.management.models.user_identities_inner import UserIdentitiesInner
from kinde_sdk.management.models.users_response_users_inner_billing import UsersResponseUsersInnerBilling
+from kinde_sdk.management.models.users_response_users_inner_identities_inner import UsersResponseUsersInnerIdentitiesInner
from kinde_sdk.management.models.users_response_users_inner_last_organization_sign_ins_inner import UsersResponseUsersInnerLastOrganizationSignInsInner
from typing import Optional, Set
from typing_extensions import Self
@@ -45,7 +45,7 @@ class UsersResponseUsersInner(BaseModel):
created_on: Optional[StrictStr] = Field(default=None, description="Date of user creation in ISO 8601 format.")
last_organization_sign_ins: Optional[List[UsersResponseUsersInnerLastOrganizationSignInsInner]] = Field(default=None, description="Array of organization sign-in information for the user.")
organizations: Optional[List[StrictStr]] = Field(default=None, description="Array of organizations a user belongs to.")
- identities: Optional[List[UserIdentitiesInner]] = Field(default=None, description="Array of identities belonging to the user.")
+ identities: Optional[List[UsersResponseUsersInnerIdentitiesInner]] = Field(default=None, description="Array of identities belonging to the user.")
billing: Optional[UsersResponseUsersInnerBilling] = None
__properties: ClassVar[List[str]] = ["id", "provided_id", "email", "phone", "username", "last_name", "first_name", "is_suspended", "picture", "total_sign_ins", "failed_sign_ins", "last_signed_in", "created_on", "last_organization_sign_ins", "organizations", "identities", "billing"]
@@ -157,7 +157,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"created_on": obj.get("created_on"),
"last_organization_sign_ins": [UsersResponseUsersInnerLastOrganizationSignInsInner.from_dict(_item) for _item in obj["last_organization_sign_ins"]] if obj.get("last_organization_sign_ins") is not None else None,
"organizations": obj.get("organizations"),
- "identities": [UserIdentitiesInner.from_dict(_item) for _item in obj["identities"]] if obj.get("identities") is not None else None,
+ "identities": [UsersResponseUsersInnerIdentitiesInner.from_dict(_item) for _item in obj["identities"]] if obj.get("identities") is not None else None,
"billing": UsersResponseUsersInnerBilling.from_dict(obj["billing"]) if obj.get("billing") is not None else None
})
return _obj
diff --git a/kinde_sdk/management/models/users_response_users_inner_identities_inner.py b/kinde_sdk/management/models/users_response_users_inner_identities_inner.py
new file mode 100644
index 00000000..715c0fe2
--- /dev/null
+++ b/kinde_sdk/management/models/users_response_users_inner_identities_inner.py
@@ -0,0 +1,97 @@
+# coding: utf-8
+
+"""
+ Kinde Management API
+
+ Provides endpoints to manage your Kinde Businesses. ## Intro ## How to use 1. [Set up and authorize a machine-to-machine (M2M) application](https://docs.kinde.com/developer-tools/kinde-api/connect-to-kinde-api/). 2. [Generate a test access token](https://docs.kinde.com/developer-tools/kinde-api/access-token-for-api/) 3. Test request any endpoint using the test token
+
+ The version of the OpenAPI document: 1
+ Contact: support@kinde.com
+ 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, Optional
+from typing import Optional, Set
+from typing_extensions import Self
+
+class UsersResponseUsersInnerIdentitiesInner(BaseModel):
+ """
+ UsersResponseUsersInnerIdentitiesInner
+ """ # noqa: E501
+ type: Optional[StrictStr] = None
+ identity: Optional[StrictStr] = None
+ connection_id: Optional[StrictStr] = Field(default=None, description="The social or enterprise connection ID associated with the identity. Null for email, phone, username, and passkey identities.")
+ __properties: ClassVar[List[str]] = ["type", "identity", "connection_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 UsersResponseUsersInnerIdentitiesInner 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.
+ """
+ excluded_fields: Set[str] = set([
+ ])
+
+ _dict = self.model_dump(
+ by_alias=True,
+ exclude=excluded_fields,
+ exclude_none=True,
+ )
+ # set to None if connection_id (nullable) is None
+ # and model_fields_set contains the field
+ if self.connection_id is None and "connection_id" in self.model_fields_set:
+ _dict['connection_id'] = None
+
+ return _dict
+
+ @classmethod
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
+ """Create an instance of UsersResponseUsersInnerIdentitiesInner from a dict"""
+ if obj is None:
+ return None
+
+ if not isinstance(obj, dict):
+ return cls.model_validate(obj)
+
+ _obj = cls.model_validate({
+ "type": obj.get("type"),
+ "identity": obj.get("identity"),
+ "connection_id": obj.get("connection_id")
+ })
+ return _obj
+
+
diff --git a/testv2/testv2_management/test_management_client.py b/testv2/testv2_management/test_management_client.py
index 78bf1f2f..3403fa3a 100644
--- a/testv2/testv2_management/test_management_client.py
+++ b/testv2/testv2_management/test_management_client.py
@@ -808,6 +808,7 @@ def test_dynamic_api_generation(self, mock_token_manager_class, mock_api_client_
'callbacks_api', # from CallbacksApi
'connected_apps_api', # from ConnectedAppsApi
'connections_api', # from ConnectionsApi
+ 'directories_api', # from DirectoriesApi (added in updated spec)
'environment_variables_api',# from EnvironmentVariablesApi
'environments_api', # from EnvironmentsApi
'feature_flags_api', # from FeatureFlagsApi
@@ -849,6 +850,46 @@ def test_dynamic_api_generation(self, mock_token_manager_class, mock_api_client_
assert not hasattr(client, 'apis') # Should be apis_api, not apis
assert not hasattr(client, 'api_keys') # Should be api_keys_api, not api_keys
+ @patch('kinde_sdk.management.management_client.Configuration')
+ @patch('kinde_sdk.management.management_client.ApiClient')
+ @patch('kinde_sdk.management.management_client.ManagementTokenManager')
+ def test_every_generated_api_class_is_exposed(self, mock_token_manager_class, mock_api_client_class, mock_config_class):
+ """Guard against regen drift: EVERY *Api class in the generated api module
+ must be auto-exposed under a valid snake_case attribute.
+
+ This is intentionally exhaustive (not a hardcoded list) so that a future
+ spec regeneration adding a new API class — especially one with an acronym
+ that could break snake_case conversion (cf. APIsApi/MFAApi) — is caught
+ automatically without editing this test. We test our dynamic-discovery
+ plumbing, not the generated endpoints themselves.
+ """
+ import inspect as _inspect
+ from kinde_sdk.management import api as _api_module
+
+ mock_token_manager_class.return_value = self.mock_token_manager
+ mock_api_client_class.return_value = self.mock_api_client
+ mock_config_class.return_value = self.mock_configuration
+ self.mock_api_client.rest_client = self.mock_rest_client
+
+ client = ManagementClient(self.domain, self.client_id, self.client_secret)
+
+ api_classes = [
+ name for name, obj in _inspect.getmembers(_api_module)
+ if _inspect.isclass(obj) and name.endswith('Api')
+ ]
+ assert api_classes, "No API classes discovered in kinde_sdk.management.api"
+
+ for class_name in api_classes:
+ attr_name = ManagementClient._class_name_to_snake_case(class_name)
+ # Naming convention: snake_case, ends with _api, no leftover uppercase
+ assert attr_name.endswith('_api'), f"{class_name} -> {attr_name} should end with '_api'"
+ assert attr_name.islower(), f"{class_name} -> {attr_name} should be lowercase"
+ assert '__' not in attr_name, f"{class_name} -> {attr_name} has a doubled underscore"
+ # The client must actually expose it as a live API instance
+ assert hasattr(client, attr_name), f"client.{attr_name} (from {class_name}) should exist"
+ assert hasattr(getattr(client, attr_name), 'api_client'), \
+ f"client.{attr_name} should be an API instance"
+
# =========================================================================
# Tests for deprecated wrapper methods (for coverage)
# =========================================================================