kinde-python-sdk 2.0.0b10__tar.gz → 2.0.0b11__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {kinde_python_sdk-2.0.0b10/kinde_python_sdk.egg-info → kinde_python_sdk-2.0.0b11}/PKG-INFO +22 -1
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/README.md +21 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11/kinde_python_sdk.egg-info}/PKG-INFO +22 -1
- kinde_python_sdk-2.0.0b11/kinde_sdk/management/management_token_manager.py +303 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/pyproject.toml +1 -1
- kinde_python_sdk-2.0.0b10/kinde_sdk/management/management_token_manager.py +0 -110
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/LICENSE +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/MANIFEST.in +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_fastapi/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_fastapi/examples/example_app.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_fastapi/examples/session.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_fastapi/framework/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_fastapi/framework/fastapi_framework.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_fastapi/framework/fastapi_framework_factory.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_fastapi/middleware/framework_middleware.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_fastapi/storage/fastapi_storage.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_fastapi/storage/fastapi_storage_factory.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_flask/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_flask/examples/example_app.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_flask/framework/flask_framework.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_flask/framework/flask_framework_factory.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_flask/middleware/framework_middleware.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_flask/storage/flask_storage_factory.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_python_sdk.egg-info/SOURCES.txt +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_python_sdk.egg-info/dependency_links.txt +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_python_sdk.egg-info/not-zip-safe +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_python_sdk.egg-info/requires.txt +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_python_sdk.egg-info/top_level.txt +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/path_to_api.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_apis.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_apis_api_id.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_apis_api_id_applications.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_applications.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_applications_app_id_auth_logout_urls.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_applications_app_id_auth_redirect_urls.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_applications_application_id.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_applications_application_id_connections.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_applications_application_id_connections_connection_id.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_business.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_connected_apps_auth_url.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_connected_apps_revoke.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_connected_apps_token.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_connections.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_connections_connection_id.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_environment_feature_flags.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_environment_feature_flags_feature_flag_key.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_event_types.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_events_event_id.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_feature_flags.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_feature_flags_feature_flag_key.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_industries.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_organization.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_organization_org_code.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_organization_org_code_handle.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_organizations.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_organizations_org_code_feature_flags.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_organizations_org_code_feature_flags_feature_flag_key.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_organizations_org_code_properties.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_organizations_org_code_properties_property_key.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_organizations_org_code_users.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_organizations_org_code_users_user_id.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_organizations_org_code_users_user_id_permissions.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_organizations_org_code_users_user_id_permissions_permission_id.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_organizations_org_code_users_user_id_roles.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_organizations_org_code_users_user_id_roles_role_id.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_permissions.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_permissions_permission_id.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_properties.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_properties_property_id.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_property_categories.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_property_categories_category_id.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_roles.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_roles_role_id.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_roles_role_id_permissions.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_roles_role_id_permissions_permission_id.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_subscribers.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_subscribers_subscriber_id.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_timezones.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_user.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_users.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_users_user_id_feature_flags_feature_flag_key.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_users_user_id_password.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_users_user_id_properties.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_users_user_id_properties_property_key.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_users_user_id_refresh_claims.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_webhooks.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_webhooks_webhook_id.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/oauth2_introspect.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/oauth2_revoke.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/oauth2_user_profile.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/oauth2_v2_user_profile.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/tag_to_api.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/tags/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/tags/apis_api.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/tags/applications_api.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/tags/business_api.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/tags/callbacks_api.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/tags/connected_apps_api.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/tags/connections_api.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/tags/environments_api.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/tags/feature_flags_api.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/tags/industries_api.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/tags/o_auth_api.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/tags/organizations_api.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/tags/permissions_api.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/tags/properties_api.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/tags/property_categories_api.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/tags/roles_api.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/tags/subscribers_api.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/tags/timezones_api.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/tags/users_api.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/tags/webhooks_api.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/auth/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/auth/claims.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/auth/config_loader.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/auth/enums.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/auth/feature_flags.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/auth/login_options.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/auth/oauth.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/auth/permissions.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/auth/portals.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/auth/token_manager.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/auth/user_session.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/core/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/core/exceptions.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/core/framework/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/core/framework/framework_context.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/core/framework/framework_factory.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/core/framework/framework_interface.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/core/framework/null_framework.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/core/helpers.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/core/storage/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/core/storage/framework_aware_storage.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/core/storage/local_storage.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/core/storage/memory_storage.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/core/storage/storage_factory.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/core/storage/storage_interface.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/core/storage/storage_manager.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/management/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/management/api_client.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/management/configuration.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/management/management_client.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/management/schemas.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/add_organization_users_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/api.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/api_result.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/apis.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/applications.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/category.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/connected_apps_access_token.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/connected_apps_auth_url.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/connection.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/create_application_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/create_category_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/create_connection_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/create_organization_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/create_property_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/create_subscriber_success_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/create_user_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/create_webhook_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/delete_webhook_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/error.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/error_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/event_type.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/get_application_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/get_applications_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/get_categories_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/get_connections_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/get_environment_feature_flags_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/get_event_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/get_event_types_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/get_organization_feature_flags_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/get_organization_users_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/get_organizations_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/get_organizations_user_permissions_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/get_organizations_user_roles_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/get_permissions_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/get_properties_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/get_property_values_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/get_redirect_callback_urls_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/get_roles_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/get_subscriber_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/get_subscribers_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/get_webhooks_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/logout_redirect_urls.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/model_property.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/organization.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/organization_user.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/organization_user_permission.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/organization_user_role.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/organization_user_role_permissions.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/organization_users.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/permissions.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/property_value.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/redirect_callback_urls.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/role.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/roles.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/roles_permission_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/subscriber.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/subscribers_subscriber.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/success_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/token_error_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/token_introspect.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/update_organization_users_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/update_role_permissions_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/update_user_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/update_webhook_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/user.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/user_identity.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/user_profile.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/user_profile_v2.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/users.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/users_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/model/webhook.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/models/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_apis/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_apis/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_apis/post.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_apis_api_id/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_apis_api_id/delete.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_apis_api_id/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_apis_api_id_applications/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_apis_api_id_applications/patch.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_applications/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_applications/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_applications/post.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_applications_app_id_auth_logout_urls/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_applications_app_id_auth_logout_urls/delete.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_applications_app_id_auth_logout_urls/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_applications_app_id_auth_logout_urls/post.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_applications_app_id_auth_logout_urls/put.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_applications_app_id_auth_redirect_urls/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_applications_app_id_auth_redirect_urls/delete.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_applications_app_id_auth_redirect_urls/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_applications_app_id_auth_redirect_urls/post.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_applications_app_id_auth_redirect_urls/put.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_applications_application_id/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_applications_application_id/delete.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_applications_application_id/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_applications_application_id/patch.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_applications_application_id_connections/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_applications_application_id_connections/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_applications_application_id_connections_connection_id/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_applications_application_id_connections_connection_id/delete.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_applications_application_id_connections_connection_id/post.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_business/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_business/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_business/patch.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_connected_apps_auth_url/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_connected_apps_auth_url/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_connected_apps_revoke/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_connected_apps_revoke/post.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_connected_apps_token/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_connected_apps_token/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_connections/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_connections/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_connections/post.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_connections_connection_id/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_connections_connection_id/delete.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_connections_connection_id/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_connections_connection_id/patch.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_environment_feature_flags/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_environment_feature_flags/delete.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_environment_feature_flags/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_environment_feature_flags_feature_flag_key/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_environment_feature_flags_feature_flag_key/delete.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_environment_feature_flags_feature_flag_key/patch.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_event_types/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_event_types/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_events_event_id/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_events_event_id/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_feature_flags/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_feature_flags/post.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_feature_flags_feature_flag_key/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_feature_flags_feature_flag_key/delete.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_feature_flags_feature_flag_key/put.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_industries/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_industries/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organization/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organization/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organization/post.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organization_org_code/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organization_org_code/delete.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organization_org_code/patch.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organization_org_code_handle/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organization_org_code_handle/delete.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organizations/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organizations/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organizations_org_code_feature_flags/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organizations_org_code_feature_flags/delete.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organizations_org_code_feature_flags/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organizations_org_code_feature_flags_feature_flag_key/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organizations_org_code_feature_flags_feature_flag_key/delete.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organizations_org_code_feature_flags_feature_flag_key/patch.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organizations_org_code_properties/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organizations_org_code_properties/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organizations_org_code_properties/patch.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organizations_org_code_properties_property_key/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organizations_org_code_properties_property_key/put.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organizations_org_code_users/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organizations_org_code_users/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organizations_org_code_users/patch.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organizations_org_code_users/post.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organizations_org_code_users_user_id/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organizations_org_code_users_user_id/delete.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organizations_org_code_users_user_id_permissions/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organizations_org_code_users_user_id_permissions/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organizations_org_code_users_user_id_permissions/post.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organizations_org_code_users_user_id_permissions_permission_id/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organizations_org_code_users_user_id_permissions_permission_id/delete.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organizations_org_code_users_user_id_roles/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organizations_org_code_users_user_id_roles/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organizations_org_code_users_user_id_roles/post.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organizations_org_code_users_user_id_roles_role_id/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_organizations_org_code_users_user_id_roles_role_id/delete.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_permissions/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_permissions/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_permissions/post.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_permissions_permission_id/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_permissions_permission_id/delete.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_permissions_permission_id/patch.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_properties/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_properties/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_properties/post.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_properties_property_id/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_properties_property_id/delete.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_properties_property_id/put.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_property_categories/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_property_categories/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_property_categories/post.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_property_categories_category_id/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_property_categories_category_id/put.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_roles/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_roles/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_roles/post.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_roles_role_id/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_roles_role_id/delete.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_roles_role_id/patch.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_roles_role_id_permissions/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_roles_role_id_permissions/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_roles_role_id_permissions/patch.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_roles_role_id_permissions_permission_id/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_roles_role_id_permissions_permission_id/delete.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_subscribers/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_subscribers/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_subscribers/post.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_subscribers_subscriber_id/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_subscribers_subscriber_id/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_timezones/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_timezones/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_user/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_user/delete.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_user/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_user/patch.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_user/post.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_users/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_users/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_users_user_id_feature_flags_feature_flag_key/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_users_user_id_feature_flags_feature_flag_key/patch.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_users_user_id_password/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_users_user_id_password/put.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_users_user_id_properties/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_users_user_id_properties/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_users_user_id_properties/patch.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_users_user_id_properties_property_key/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_users_user_id_properties_property_key/put.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_users_user_id_refresh_claims/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_users_user_id_refresh_claims/post.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_webhooks/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_webhooks/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_webhooks/patch.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_webhooks/post.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_webhooks_webhook_id/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/api_v1_webhooks_webhook_id/delete.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/oauth2_introspect/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/oauth2_introspect/post.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/oauth2_revoke/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/oauth2_revoke/post.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/oauth2_user_profile/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/oauth2_user_profile/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/oauth2_v2_user_profile/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/paths/oauth2_v2_user_profile/get.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_kinde_api_client.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/__init__.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_add_organization_users_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_api.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_api_result.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_apis.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_applications.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_category.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_connected_apps_access_token.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_connected_apps_auth_url.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_connection.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_create_application_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_create_category_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_create_connection_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_create_organization_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_create_property_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_create_subscriber_success_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_create_user_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_create_webhook_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_delete_webhook_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_error.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_error_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_event_type.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_get_application_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_get_applications_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_get_categories_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_get_connections_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_get_environment_feature_flags_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_get_event_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_get_event_types_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_get_organization_feature_flags_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_get_organization_users_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_get_organizations_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_get_organizations_user_permissions_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_get_organizations_user_roles_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_get_permissions_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_get_properties_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_get_property_values_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_get_redirect_callback_urls_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_get_roles_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_get_subscriber_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_get_subscribers_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_get_webhooks_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_logout_redirect_urls.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_model_property.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_organization.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_organization_user.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_organization_user_permission.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_organization_user_role.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_organization_user_role_permissions.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_organization_users.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_permissions.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_property_value.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_redirect_callback_urls.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_role.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_roles.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_roles_permission_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_subscriber.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_subscribers_subscriber.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_success_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_token_error_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_token_introspect.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_update_organization_users_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_update_role_permissions_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_update_user_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_update_webhook_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_user.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_user_identity.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_user_profile.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_user_profile_v2.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_users.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_users_response.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/test/test_models/test_webhook.py +0 -0
- {kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kinde-python-sdk
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.0b11
|
|
4
4
|
Summary: Connect your app to the Kinde platform
|
|
5
5
|
Author-email: Kinde Engineering <engineering@kinde.com>
|
|
6
6
|
Project-URL: Homepage, https://github.com/kinde-oss/kinde-python-sdk
|
|
@@ -705,6 +705,27 @@ def main():
|
|
|
705
705
|
if __name__ == "__main__":
|
|
706
706
|
main()
|
|
707
707
|
```
|
|
708
|
+
# Version Tracking And Framework detection
|
|
709
|
+
|
|
710
|
+
The implementation generates headers in the exact format specified:
|
|
711
|
+
|
|
712
|
+
No Framework: Python/2.0.0
|
|
713
|
+
|
|
714
|
+
With Framework: Python-Flask/2.0.0/3.11.0/python
|
|
715
|
+
|
|
716
|
+
|
|
717
|
+
## Framework Detection
|
|
718
|
+
|
|
719
|
+
Auto-detects these frameworks:
|
|
720
|
+
|
|
721
|
+
Django, Flask, FastAPI (more frameworks can be added)
|
|
722
|
+
|
|
723
|
+
## Version Detection
|
|
724
|
+
|
|
725
|
+
SDK Version: Automatically detected from package metadata
|
|
726
|
+
Python Version: Detected from ```sys.version_info```
|
|
727
|
+
Fallback: Uses "2.0.0-dev" during development
|
|
728
|
+
|
|
708
729
|
|
|
709
730
|
## Publishing
|
|
710
731
|
|
|
@@ -664,6 +664,27 @@ def main():
|
|
|
664
664
|
if __name__ == "__main__":
|
|
665
665
|
main()
|
|
666
666
|
```
|
|
667
|
+
# Version Tracking And Framework detection
|
|
668
|
+
|
|
669
|
+
The implementation generates headers in the exact format specified:
|
|
670
|
+
|
|
671
|
+
No Framework: Python/2.0.0
|
|
672
|
+
|
|
673
|
+
With Framework: Python-Flask/2.0.0/3.11.0/python
|
|
674
|
+
|
|
675
|
+
|
|
676
|
+
## Framework Detection
|
|
677
|
+
|
|
678
|
+
Auto-detects these frameworks:
|
|
679
|
+
|
|
680
|
+
Django, Flask, FastAPI (more frameworks can be added)
|
|
681
|
+
|
|
682
|
+
## Version Detection
|
|
683
|
+
|
|
684
|
+
SDK Version: Automatically detected from package metadata
|
|
685
|
+
Python Version: Detected from ```sys.version_info```
|
|
686
|
+
Fallback: Uses "2.0.0-dev" during development
|
|
687
|
+
|
|
667
688
|
|
|
668
689
|
## Publishing
|
|
669
690
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: kinde-python-sdk
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.0b11
|
|
4
4
|
Summary: Connect your app to the Kinde platform
|
|
5
5
|
Author-email: Kinde Engineering <engineering@kinde.com>
|
|
6
6
|
Project-URL: Homepage, https://github.com/kinde-oss/kinde-python-sdk
|
|
@@ -705,6 +705,27 @@ def main():
|
|
|
705
705
|
if __name__ == "__main__":
|
|
706
706
|
main()
|
|
707
707
|
```
|
|
708
|
+
# Version Tracking And Framework detection
|
|
709
|
+
|
|
710
|
+
The implementation generates headers in the exact format specified:
|
|
711
|
+
|
|
712
|
+
No Framework: Python/2.0.0
|
|
713
|
+
|
|
714
|
+
With Framework: Python-Flask/2.0.0/3.11.0/python
|
|
715
|
+
|
|
716
|
+
|
|
717
|
+
## Framework Detection
|
|
718
|
+
|
|
719
|
+
Auto-detects these frameworks:
|
|
720
|
+
|
|
721
|
+
Django, Flask, FastAPI (more frameworks can be added)
|
|
722
|
+
|
|
723
|
+
## Version Detection
|
|
724
|
+
|
|
725
|
+
SDK Version: Automatically detected from package metadata
|
|
726
|
+
Python Version: Detected from ```sys.version_info```
|
|
727
|
+
Fallback: Uses "2.0.0-dev" during development
|
|
728
|
+
|
|
708
729
|
|
|
709
730
|
## Publishing
|
|
710
731
|
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Token manager for the Kinde Management API.
|
|
3
|
+
|
|
4
|
+
This module provides token management for the Kinde Management API using client credentials flow.
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
import time
|
|
8
|
+
import requests
|
|
9
|
+
import threading
|
|
10
|
+
from typing import Any, Dict, Optional
|
|
11
|
+
import importlib.metadata
|
|
12
|
+
import sys
|
|
13
|
+
|
|
14
|
+
class SDKTracker:
|
|
15
|
+
"""Handles SDK tracking header generation for Kinde Python SDK."""
|
|
16
|
+
|
|
17
|
+
# SDK Package name for version detection
|
|
18
|
+
SDK_PACKAGE_NAME = "kinde-python-sdk"
|
|
19
|
+
|
|
20
|
+
# Framework detection mapping
|
|
21
|
+
FRAMEWORK_DETECTION = {
|
|
22
|
+
'django': 'Django',
|
|
23
|
+
'flask': 'Flask',
|
|
24
|
+
'fastapi': 'FastAPI',
|
|
25
|
+
'starlette': 'Starlette',
|
|
26
|
+
'tornado': 'Tornado',
|
|
27
|
+
'pyramid': 'Pyramid',
|
|
28
|
+
'bottle': 'Bottle',
|
|
29
|
+
'cherrypy': 'CherryPy',
|
|
30
|
+
'falcon': 'Falcon',
|
|
31
|
+
'sanic': 'Sanic',
|
|
32
|
+
'quart': 'Quart',
|
|
33
|
+
'aiohttp': 'aiohttp'
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
@classmethod
|
|
37
|
+
def get_sdk_version(cls) -> str:
|
|
38
|
+
"""Get the installed SDK version."""
|
|
39
|
+
try:
|
|
40
|
+
return importlib.metadata.version(cls.SDK_PACKAGE_NAME)
|
|
41
|
+
except importlib.metadata.PackageNotFoundError:
|
|
42
|
+
# Fallback for development/testing
|
|
43
|
+
return "2.0.0-dev"
|
|
44
|
+
|
|
45
|
+
@classmethod
|
|
46
|
+
def get_python_version(cls) -> str:
|
|
47
|
+
"""Get the Python version in format: major.minor.micro"""
|
|
48
|
+
version_info = sys.version_info
|
|
49
|
+
return f"{version_info.major}.{version_info.minor}.{version_info.micro}"
|
|
50
|
+
|
|
51
|
+
@classmethod
|
|
52
|
+
def detect_framework(cls) -> Optional[str]:
|
|
53
|
+
"""
|
|
54
|
+
Detect the web framework being used.
|
|
55
|
+
|
|
56
|
+
Returns:
|
|
57
|
+
str: Framework name if detected, None otherwise
|
|
58
|
+
"""
|
|
59
|
+
for module_name, framework_name in cls.FRAMEWORK_DETECTION.items():
|
|
60
|
+
try:
|
|
61
|
+
importlib.import_module(module_name)
|
|
62
|
+
return framework_name
|
|
63
|
+
except ImportError:
|
|
64
|
+
continue
|
|
65
|
+
return None
|
|
66
|
+
|
|
67
|
+
@classmethod
|
|
68
|
+
def generate_tracking_header(cls, framework: Optional[str] = None) -> str:
|
|
69
|
+
"""
|
|
70
|
+
Generate the Kinde-SDK tracking header value.
|
|
71
|
+
|
|
72
|
+
Args:
|
|
73
|
+
framework: Optional framework name to override auto-detection
|
|
74
|
+
|
|
75
|
+
Returns:
|
|
76
|
+
str: Header value in format: Python-[framework]/[SDK_VERSION]/[PYTHON_VERSION]/python
|
|
77
|
+
or Python/[SDK_VERSION] if no framework detected
|
|
78
|
+
"""
|
|
79
|
+
sdk_version = cls.get_sdk_version()
|
|
80
|
+
python_version = cls.get_python_version()
|
|
81
|
+
|
|
82
|
+
# Use provided framework or auto-detect
|
|
83
|
+
detected_framework = framework or cls.detect_framework()
|
|
84
|
+
|
|
85
|
+
if detected_framework:
|
|
86
|
+
# Format: Python-[framework]/[SDK_VERSION]/[PYTHON_VERSION]/python
|
|
87
|
+
return f"Python-{detected_framework}/{sdk_version}/{python_version}/python"
|
|
88
|
+
else:
|
|
89
|
+
# Format: Python/[SDK_VERSION] (when no framework detected)
|
|
90
|
+
return f"Python/{sdk_version}"
|
|
91
|
+
|
|
92
|
+
@classmethod
|
|
93
|
+
def get_tracking_headers(cls, framework: Optional[str] = None) -> Dict[str, str]:
|
|
94
|
+
"""
|
|
95
|
+
Get the complete headers dict including tracking header.
|
|
96
|
+
|
|
97
|
+
Args:
|
|
98
|
+
framework: Optional framework name to override auto-detection
|
|
99
|
+
|
|
100
|
+
Returns:
|
|
101
|
+
dict: Headers dictionary with Kinde-SDK header
|
|
102
|
+
"""
|
|
103
|
+
return {
|
|
104
|
+
"Kinde-SDK": cls.generate_tracking_header(framework)
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
class ManagementTokenManager:
|
|
109
|
+
"""
|
|
110
|
+
Token manager for the Kinde Management API.
|
|
111
|
+
Uses client credentials grant type to obtain access tokens.
|
|
112
|
+
"""
|
|
113
|
+
_instances = {}
|
|
114
|
+
_lock = threading.RLock() # Add a lock for thread safety
|
|
115
|
+
|
|
116
|
+
# SDK tracking configuration
|
|
117
|
+
SDK_PACKAGE_NAME = "kinde-python-sdk"
|
|
118
|
+
FRAMEWORK_DETECTION = {
|
|
119
|
+
'django': 'Django',
|
|
120
|
+
'flask': 'Flask',
|
|
121
|
+
'fastapi': 'FastAPI'
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
@classmethod
|
|
125
|
+
def reset_instances(cls):
|
|
126
|
+
"""Reset all management token manager instances - useful for testing"""
|
|
127
|
+
with cls._lock:
|
|
128
|
+
cls._instances = {}
|
|
129
|
+
|
|
130
|
+
def __new__(cls, domain, *args, **kwargs):
|
|
131
|
+
"""
|
|
132
|
+
Ensure only one instance per domain and client_id combination.
|
|
133
|
+
FIXED: Restore original signature to match the original design
|
|
134
|
+
"""
|
|
135
|
+
with cls._lock:
|
|
136
|
+
# Extract client_id from args or kwargs
|
|
137
|
+
client_id = args[0] if args else kwargs.get('client_id', '')
|
|
138
|
+
instance_key = f"{domain}-{client_id}"
|
|
139
|
+
if instance_key not in cls._instances:
|
|
140
|
+
cls._instances[instance_key] = super(ManagementTokenManager, cls).__new__(cls)
|
|
141
|
+
return cls._instances[instance_key]
|
|
142
|
+
|
|
143
|
+
def __init__(self, domain, client_id, client_secret):
|
|
144
|
+
# Skip initialization if already initialized
|
|
145
|
+
if hasattr(self, "initialized") and self.initialized:
|
|
146
|
+
return
|
|
147
|
+
|
|
148
|
+
self.domain = domain
|
|
149
|
+
self.client_id = client_id
|
|
150
|
+
self.client_secret = client_secret
|
|
151
|
+
self.token_url = f"https://{domain}/oauth2/token"
|
|
152
|
+
self.tokens = {} # Store tokens
|
|
153
|
+
self.lock = threading.RLock() # Add a lock for thread safety
|
|
154
|
+
self.initialized = True
|
|
155
|
+
|
|
156
|
+
def _get_sdk_version(self) -> str:
|
|
157
|
+
"""Get the installed SDK version."""
|
|
158
|
+
try:
|
|
159
|
+
return importlib.metadata.version(self.SDK_PACKAGE_NAME)
|
|
160
|
+
except importlib.metadata.PackageNotFoundError:
|
|
161
|
+
# Fallback for development/testing
|
|
162
|
+
return "2.0.0-dev"
|
|
163
|
+
|
|
164
|
+
def _get_python_version(self) -> str:
|
|
165
|
+
"""Get the Python version in format: major.minor.micro"""
|
|
166
|
+
version_info = sys.version_info
|
|
167
|
+
return f"{version_info.major}.{version_info.minor}.{version_info.micro}"
|
|
168
|
+
|
|
169
|
+
def _detect_framework(self) -> Optional[str]:
|
|
170
|
+
"""
|
|
171
|
+
Detect the web framework being used.
|
|
172
|
+
|
|
173
|
+
Returns:
|
|
174
|
+
str: Framework name if detected, None otherwise
|
|
175
|
+
"""
|
|
176
|
+
for module_name, framework_name in self.FRAMEWORK_DETECTION.items():
|
|
177
|
+
try:
|
|
178
|
+
importlib.import_module(module_name)
|
|
179
|
+
return framework_name
|
|
180
|
+
except ImportError:
|
|
181
|
+
continue
|
|
182
|
+
return None
|
|
183
|
+
|
|
184
|
+
def _generate_tracking_header(self, framework: Optional[str] = None) -> str:
|
|
185
|
+
"""
|
|
186
|
+
Generate the Kinde-SDK tracking header value.
|
|
187
|
+
|
|
188
|
+
Args:
|
|
189
|
+
framework: Optional framework name to override auto-detection
|
|
190
|
+
|
|
191
|
+
Returns:
|
|
192
|
+
str: Header value in format as per specification
|
|
193
|
+
"""
|
|
194
|
+
sdk_version = self._get_sdk_version()
|
|
195
|
+
python_version = self._get_python_version()
|
|
196
|
+
|
|
197
|
+
# Use provided framework or auto-detect
|
|
198
|
+
detected_framework = framework or self._detect_framework()
|
|
199
|
+
|
|
200
|
+
if detected_framework:
|
|
201
|
+
# Format: Python-[framework]/[SDK_VERSION]/[PYTHON_VERSION]/python
|
|
202
|
+
return f"Python-{detected_framework}/{sdk_version}/{python_version}/python"
|
|
203
|
+
else:
|
|
204
|
+
# Format: Python/[SDK_VERSION] (when no framework detected)
|
|
205
|
+
return f"Python/{sdk_version}"
|
|
206
|
+
|
|
207
|
+
def set_tokens(self, token_data: Dict[str, Any]):
|
|
208
|
+
""" Store tokens with expiration. """
|
|
209
|
+
with self.lock:
|
|
210
|
+
# Handle None values by using default
|
|
211
|
+
expires_in = token_data.get("expires_in") or 3600
|
|
212
|
+
token_type = token_data.get("token_type") or "Bearer"
|
|
213
|
+
self.tokens = {
|
|
214
|
+
"access_token": token_data.get("access_token"),
|
|
215
|
+
"expires_at": time.time() + expires_in,
|
|
216
|
+
"token_type": token_type
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
def get_access_token(self):
|
|
220
|
+
""" Get a valid access token. Request new if expired. """
|
|
221
|
+
with self.lock:
|
|
222
|
+
# Check if token exists and is not expired
|
|
223
|
+
if self.tokens and "access_token" in self.tokens and time.time() < self.tokens.get("expires_at", 0) - 60:
|
|
224
|
+
return self.tokens["access_token"]
|
|
225
|
+
|
|
226
|
+
# Need to get a new token
|
|
227
|
+
return self.request_new_token()
|
|
228
|
+
|
|
229
|
+
# def request_new_token(self):
|
|
230
|
+
# """Use client credentials to get a new access token."""
|
|
231
|
+
# data = {
|
|
232
|
+
# "grant_type": "client_credentials",
|
|
233
|
+
# "client_id": self.client_id,
|
|
234
|
+
# "client_secret": self.client_secret,
|
|
235
|
+
# "audience": f"https://{self.domain}/api"
|
|
236
|
+
# }
|
|
237
|
+
|
|
238
|
+
# headers = {
|
|
239
|
+
# "Content-Type": "application/x-www-form-urlencoded"
|
|
240
|
+
# }
|
|
241
|
+
|
|
242
|
+
# # CHANGE 3: Add timeout to prevent hanging on network issues
|
|
243
|
+
# try:
|
|
244
|
+
# response = requests.post(
|
|
245
|
+
# self.token_url,
|
|
246
|
+
# data=data,
|
|
247
|
+
# headers=headers,
|
|
248
|
+
# timeout=30 # 30-second timeout
|
|
249
|
+
# )
|
|
250
|
+
# response.raise_for_status()
|
|
251
|
+
# token_data = response.json()
|
|
252
|
+
|
|
253
|
+
# # This call now works because we use RLock
|
|
254
|
+
# self.set_tokens(token_data)
|
|
255
|
+
# return self.tokens["access_token"]
|
|
256
|
+
|
|
257
|
+
# except requests.exceptions.Timeout:
|
|
258
|
+
# raise Exception(f"Token request timed out after 30 seconds for domain {self.domain}")
|
|
259
|
+
# except requests.exceptions.RequestException as e:
|
|
260
|
+
# raise Exception(f"Token request failed for domain {self.domain}: {str(e)}")
|
|
261
|
+
|
|
262
|
+
def request_new_token(self):
|
|
263
|
+
"""Use client credentials to get a new access token with tracking headers."""
|
|
264
|
+
data = {
|
|
265
|
+
"grant_type": "client_credentials",
|
|
266
|
+
"client_id": self.client_id,
|
|
267
|
+
"client_secret": self.client_secret,
|
|
268
|
+
"audience": f"https://{self.domain}/api"
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
# Base headers
|
|
272
|
+
headers = {
|
|
273
|
+
"Content-Type": "application/x-www-form-urlencoded"
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
# Add SDK tracking header as per specification
|
|
277
|
+
# This is required for analytics and support purposes
|
|
278
|
+
headers["Kinde-SDK"] = self._generate_tracking_header()
|
|
279
|
+
|
|
280
|
+
# Add timeout to prevent hanging on network issues
|
|
281
|
+
try:
|
|
282
|
+
response = requests.post(
|
|
283
|
+
self.token_url,
|
|
284
|
+
data=data,
|
|
285
|
+
headers=headers, # Now includes tracking headers
|
|
286
|
+
timeout=30 # 30-second timeout
|
|
287
|
+
)
|
|
288
|
+
response.raise_for_status()
|
|
289
|
+
token_data = response.json()
|
|
290
|
+
|
|
291
|
+
# This call now works because we use RLock
|
|
292
|
+
self.set_tokens(token_data)
|
|
293
|
+
return self.tokens["access_token"]
|
|
294
|
+
|
|
295
|
+
except requests.exceptions.Timeout:
|
|
296
|
+
raise Exception(f"Token request timed out after 30 seconds for domain {self.domain}")
|
|
297
|
+
except requests.exceptions.RequestException as e:
|
|
298
|
+
raise Exception(f"Token request failed for domain {self.domain}: {str(e)}")
|
|
299
|
+
|
|
300
|
+
def clear_tokens(self):
|
|
301
|
+
""" Clear stored tokens. """
|
|
302
|
+
with self.lock:
|
|
303
|
+
self.tokens = {}
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Token manager for the Kinde Management API.
|
|
3
|
-
|
|
4
|
-
This module provides token management for the Kinde Management API using client credentials flow.
|
|
5
|
-
"""
|
|
6
|
-
|
|
7
|
-
import time
|
|
8
|
-
import requests
|
|
9
|
-
import threading
|
|
10
|
-
from typing import Any, Dict, Optional
|
|
11
|
-
|
|
12
|
-
class ManagementTokenManager:
|
|
13
|
-
"""
|
|
14
|
-
Token manager for the Kinde Management API.
|
|
15
|
-
Uses client credentials grant type to obtain access tokens.
|
|
16
|
-
"""
|
|
17
|
-
_instances = {}
|
|
18
|
-
_lock = threading.RLock() # Add a lock for thread safety
|
|
19
|
-
|
|
20
|
-
@classmethod
|
|
21
|
-
def reset_instances(cls):
|
|
22
|
-
"""Reset all management token manager instances - useful for testing"""
|
|
23
|
-
with cls._lock:
|
|
24
|
-
cls._instances = {}
|
|
25
|
-
|
|
26
|
-
def __new__(cls, domain, *args, **kwargs):
|
|
27
|
-
"""
|
|
28
|
-
Ensure only one instance per domain and client_id combination.
|
|
29
|
-
FIXED: Restore original signature to match the original design
|
|
30
|
-
"""
|
|
31
|
-
with cls._lock:
|
|
32
|
-
# Extract client_id from args or kwargs
|
|
33
|
-
client_id = args[0] if args else kwargs.get('client_id', '')
|
|
34
|
-
instance_key = f"{domain}-{client_id}"
|
|
35
|
-
if instance_key not in cls._instances:
|
|
36
|
-
cls._instances[instance_key] = super(ManagementTokenManager, cls).__new__(cls)
|
|
37
|
-
return cls._instances[instance_key]
|
|
38
|
-
|
|
39
|
-
def __init__(self, domain, client_id, client_secret):
|
|
40
|
-
# Skip initialization if already initialized
|
|
41
|
-
if hasattr(self, "initialized") and self.initialized:
|
|
42
|
-
return
|
|
43
|
-
|
|
44
|
-
self.domain = domain
|
|
45
|
-
self.client_id = client_id
|
|
46
|
-
self.client_secret = client_secret
|
|
47
|
-
self.token_url = f"https://{domain}/oauth2/token"
|
|
48
|
-
self.tokens = {} # Store tokens
|
|
49
|
-
self.lock = threading.RLock() # Add a lock for thread safety
|
|
50
|
-
self.initialized = True
|
|
51
|
-
|
|
52
|
-
def set_tokens(self, token_data: Dict[str, Any]):
|
|
53
|
-
""" Store tokens with expiration. """
|
|
54
|
-
with self.lock:
|
|
55
|
-
# Handle None values by using default
|
|
56
|
-
expires_in = token_data.get("expires_in") or 3600
|
|
57
|
-
token_type = token_data.get("token_type") or "Bearer"
|
|
58
|
-
self.tokens = {
|
|
59
|
-
"access_token": token_data.get("access_token"),
|
|
60
|
-
"expires_at": time.time() + expires_in,
|
|
61
|
-
"token_type": token_type
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
def get_access_token(self):
|
|
65
|
-
""" Get a valid access token. Request new if expired. """
|
|
66
|
-
with self.lock:
|
|
67
|
-
# Check if token exists and is not expired
|
|
68
|
-
if self.tokens and "access_token" in self.tokens and time.time() < self.tokens.get("expires_at", 0) - 60:
|
|
69
|
-
return self.tokens["access_token"]
|
|
70
|
-
|
|
71
|
-
# Need to get a new token
|
|
72
|
-
return self.request_new_token()
|
|
73
|
-
|
|
74
|
-
def request_new_token(self):
|
|
75
|
-
"""Use client credentials to get a new access token."""
|
|
76
|
-
data = {
|
|
77
|
-
"grant_type": "client_credentials",
|
|
78
|
-
"client_id": self.client_id,
|
|
79
|
-
"client_secret": self.client_secret,
|
|
80
|
-
"audience": f"https://{self.domain}/api"
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
headers = {
|
|
84
|
-
"Content-Type": "application/x-www-form-urlencoded"
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
# CHANGE 3: Add timeout to prevent hanging on network issues
|
|
88
|
-
try:
|
|
89
|
-
response = requests.post(
|
|
90
|
-
self.token_url,
|
|
91
|
-
data=data,
|
|
92
|
-
headers=headers,
|
|
93
|
-
timeout=30 # 30-second timeout
|
|
94
|
-
)
|
|
95
|
-
response.raise_for_status()
|
|
96
|
-
token_data = response.json()
|
|
97
|
-
|
|
98
|
-
# This call now works because we use RLock
|
|
99
|
-
self.set_tokens(token_data)
|
|
100
|
-
return self.tokens["access_token"]
|
|
101
|
-
|
|
102
|
-
except requests.exceptions.Timeout:
|
|
103
|
-
raise Exception(f"Token request timed out after 30 seconds for domain {self.domain}")
|
|
104
|
-
except requests.exceptions.RequestException as e:
|
|
105
|
-
raise Exception(f"Token request failed for domain {self.domain}: {str(e)}")
|
|
106
|
-
|
|
107
|
-
def clear_tokens(self):
|
|
108
|
-
""" Clear stored tokens. """
|
|
109
|
-
with self.lock:
|
|
110
|
-
self.tokens = {}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_fastapi/examples/example_app.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_fastapi/framework/fastapi_framework.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_fastapi/storage/fastapi_storage.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_flask/framework/flask_framework.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_flask/storage/flask_storage_factory.py
RENAMED
|
File without changes
|
{kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_python_sdk.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_python_sdk.egg-info/not-zip-safe
RENAMED
|
File without changes
|
{kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_python_sdk.egg-info/requires.txt
RENAMED
|
File without changes
|
{kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_python_sdk.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_apis_api_id.py
RENAMED
|
File without changes
|
|
File without changes
|
{kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_applications.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_business.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_connections.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_event_types.py
RENAMED
|
File without changes
|
|
File without changes
|
{kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_feature_flags.py
RENAMED
|
File without changes
|
|
File without changes
|
{kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_industries.py
RENAMED
|
File without changes
|
{kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_organization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{kinde_python_sdk-2.0.0b10 → kinde_python_sdk-2.0.0b11}/kinde_sdk/apis/paths/api_v1_organizations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|