Tenant Manager REST API v2 version v2
{schema}://{host}/api/{version}
Tenant Manager REST API v2 provides tenant and user management capabilities using IAMCore authentication and authorization.
- schema: required(one of http, https - default: https)
The protocol scheme to use
- host: required(string - default: localhost)
The hostname or IP address of the Tenant Manager service
- version: required(v2)
Keycloak Servers
Operations for managing Keycloak server configurations.
Retrieve the list of configured Keycloak servers
get /keycloak-servers
Retrieve the list of configured Keycloak servers
Tenant Manager v2 supports OAuth 2.0 with IAMCore for authenticating all API requests. All endpoints require valid OAuth 2.0 bearer tokens issued by the IAMCore service.
Tenant Manager v2 supports long-lived API keys for service-to-service authentication. The API key must be issued by the IAMCore service.
HTTP status code 200
Successfully retrieved list of Keycloak servers
Body
Media type: application/json
Type: object
Properties- results: required(array of tenant-manager-api-types.KeycloakServer)
List of Keycloak servers
Items: KeycloakServer
- id: required(integer)
Keycloak server identifier
- url: required(string)
URL of the Keycloak server
- id: required(integer)
HTTP status code 400
Bad Request - Invalid request parameters or body
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Invalid request parameters",
"details": {
"field": "name",
"message": "This field is required"
}
}HTTP status code 401
Unauthorized - Authentication required or invalid
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Authentication required"
}HTTP status code 403
Forbidden - Insufficient permissions
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Insufficient permissions to access this resource"
}HTTP status code 404
Not Found - Resource does not exist
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Resource not found"
}HTTP status code 500
Internal Server Error - Unexpected server error
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Internal server error"
}Secured by oauth_2_0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token issued by IAMCore. This header is required for all API endpoints.
HTTP status code 401
Unauthorized - Invalid or missing access token
HTTP status code 403
Forbidden - Token valid but insufficient permissions
Secured by api_key
Headers
- X-IAMCore-API-Key: required(string)
Used to send a valid IAMCore API key for service-to-service authentication. Example: "X-IAMCore-API-Key: your-api-key"
HTTP status code 401
Unauthorized - Invalid or missing API key
HTTP status code 403
Forbidden - API key valid but insufficient permissions
Operations on a specific Keycloak server
Retrieve details of a specific Keycloak server
get /keycloak-servers/{pk}
Retrieve details of a specific Keycloak server
Tenant Manager v2 supports OAuth 2.0 with IAMCore for authenticating all API requests. All endpoints require valid OAuth 2.0 bearer tokens issued by the IAMCore service.
Tenant Manager v2 supports long-lived API keys for service-to-service authentication. The API key must be issued by the IAMCore service.
URI Parameters
- pk: required(integer)
Keycloak server identifier
Example:
0
HTTP status code 200
Successfully retrieved Keycloak server details
Body
Media type: application/json
Type: object
Properties- id: required(integer)
Keycloak server identifier
- url: required(string)
URL of the Keycloak server
HTTP status code 400
Bad Request - Invalid request parameters or body
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Invalid request parameters",
"details": {
"field": "name",
"message": "This field is required"
}
}HTTP status code 401
Unauthorized - Authentication required or invalid
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Authentication required"
}HTTP status code 403
Forbidden - Insufficient permissions
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Insufficient permissions to access this resource"
}HTTP status code 404
Keycloak server not found
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Resource not found"
}HTTP status code 500
Internal Server Error - Unexpected server error
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Internal server error"
}Secured by oauth_2_0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token issued by IAMCore. This header is required for all API endpoints.
HTTP status code 401
Unauthorized - Invalid or missing access token
HTTP status code 403
Forbidden - Token valid but insufficient permissions
Secured by api_key
Headers
- X-IAMCore-API-Key: required(string)
Used to send a valid IAMCore API key for service-to-service authentication. Example: "X-IAMCore-API-Key: your-api-key"
HTTP status code 401
Unauthorized - Invalid or missing API key
HTTP status code 403
Forbidden - API key valid but insufficient permissions
Tenants
Operations for managing tenants in the system. Tenants represent isolated environments within the platform, each with their own configuration, users, and resources.
Retrieve a paginated list of tenants accessible to the authenticated user
Create a new tenant in the system (asynchronous operation)
get /tenants
Retrieve a paginated list of tenants accessible to the authenticated user
- iamcore:tenant:read
Tenant Manager v2 supports OAuth 2.0 with IAMCore for authenticating all API requests. All endpoints require valid OAuth 2.0 bearer tokens issued by the IAMCore service.
- iamcore:tenant:read
Tenant Manager v2 supports long-lived API keys for service-to-service authentication. The API key must be issued by the IAMCore service.
Query Parameters
- tenant_id: (string)
Filter tenants by tenant ID
Example:
550e8400-e29b-41d4-a716-446655440000 - name: (string)
Filter tenants by name
Example:
my-tenant - admin: (string)
Filter tenants by admin username or email
Example:
admin@example.com - offset: (integer - default: 0 - minimum: 0)
The number of items to skip before starting to collect the result set
- limit: (integer - default: 100 - minimum: 1 - maximum: 100)
The number of items to return (max 100)
HTTP status code 200
Successfully retrieved list of tenants
Body
Media type: application/json
Type: object
Properties- count: required(integer)
Total number of items
- results: required(array of tenant-manager-api-types.TenantInfo)
List of tenant items
Items: TenantInfo
- id: (string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)
Tenant internal ID
Example:
550e8400-e29b-41d4-a716-446655440000 - name: required(string)
Tenant name
- tenant_id: required(string)
Tenant external ID
- login_theme: (string)
Custom login theme for the tenant
- status: required(one of CREATING, UPDATING, FAILED, SUSPENDED, AVAILABLE, DELETED)
Tenant status
Example:
AVAILABLE - opendistro_enabled: required(boolean)
Whether opendistro is enabled
- subscription_type: (one of PERMANENT, RENEWAL, TRIAL)
Subscription type
Example:
RENEWAL - package_type: (string)
Package type identifier
- admin: (object)
Admin user information
- id: required(string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)
Admin user ID
Example:
550e8400-e29b-41d4-a716-446655440000 - irn: required(string)
User IRN (Identity Resource Name)
- email: required(string)
Admin email address
- username: required(string)
Admin username
- first_name: required(string)
Admin first name
- last_name: required(string)
Admin last name
- id: required(string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)
- minio: (object)
Minio service information
- key: required(string)
Minio access key
- status: required(string)
Minio service status
- key: required(string)
- opendistro: (object)
Opendistro service information
- key: required(string)
Opendistro index key
- uuid: required(string)
Opendistro UUID
- status: required(string)
Opendistro service status
- key: required(string)
- id: (string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)
Example:
{
"count": 3,
"results": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Production Tenant",
"tenant_id": "tenant-prod-001",
"status": "AVAILABLE",
"opendistro_enabled": true,
"subscription_type": "RENEWAL",
"package_type": "cloud-5",
"admin": {
"id": "550e8400-e29b-41d4-a716-446655440001",
"irn": "user:admin:123",
"email": "admin@example.com",
"username": "admin",
"first_name": "Admin",
"last_name": "Admin"
},
"minio": {
"key": "minio-key-123",
"status": "AVAILABLE"
},
"opendistro": {
"uuid": "tenant-prod-001",
"status": "AVAILABLE"
},
"created": "2023-01-01T00:00:00Z",
"modified": "2023-01-01T00:00:00Z"
},
{
"id": "550e8400-e29b-41d4-a716-446655440001",
"name": "Staging Environment",
"tenant_id": "tenant-staging-001",
"status": "AVAILABLE",
"opendistro_enabled": true,
"subscription_type": "TRIAL",
"package_type": "cloud-3",
"admin": {
"id": "550e8400-e29b-41d4-a716-446655440002",
"irn": "user:admin:456",
"email": "staging-admin@example.com",
"username": "staging-admin",
"first_name": "Staging",
"last_name": "Admin"
},
"minio": {
"key": "minio-staging-key",
"status": "AVAILABLE"
},
"opendistro": {
"uuid": "tenant-staging-001",
"status": "FAILED"
},
"created": "2023-01-02T00:00:00Z",
"modified": "2023-01-02T00:00:00Z"
},
{
"id": "550e8400-e29b-41d4-a716-446655440002",
"name": "Development Environment",
"tenant_id": "tenant-dev-001",
"status": "CREATING",
"opendistro_enabled": false,
"subscription_type": "TRIAL",
"package_type": "cloud-1",
"minio": {
"key": "minio-dev-key",
"status": "CREATING"
},
"opendistro": {
"uuid": "tenant-dev-001",
"status": "CREATING"
},
"created": "2023-01-03T00:00:00Z",
"modified": "2023-01-03T00:00:00Z"
}
],
"limit": 100,
"offset": 0
}
HTTP status code 400
Bad Request - Invalid request parameters or body
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Invalid request parameters",
"details": {
"field": "name",
"message": "This field is required"
}
}HTTP status code 401
Unauthorized - Authentication required or invalid
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Authentication required"
}HTTP status code 403
Forbidden - Insufficient permissions
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Insufficient permissions to access this resource"
}HTTP status code 404
Not Found - Resource does not exist
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Resource not found"
}HTTP status code 500
Internal Server Error - Unexpected server error
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Internal server error"
}Secured by oauth_2_0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token issued by IAMCore. This header is required for all API endpoints.
HTTP status code 401
Unauthorized - Invalid or missing access token
HTTP status code 403
Forbidden - Token valid but insufficient permissions
Secured by api_key
Headers
- X-IAMCore-API-Key: required(string)
Used to send a valid IAMCore API key for service-to-service authentication. Example: "X-IAMCore-API-Key: your-api-key"
HTTP status code 401
Unauthorized - Invalid or missing API key
HTTP status code 403
Forbidden - API key valid but insufficient permissions
post /tenants
Create a new tenant in the system (asynchronous operation)
- iamcore:tenant:create
Tenant Manager v2 supports OAuth 2.0 with IAMCore for authenticating all API requests. All endpoints require valid OAuth 2.0 bearer tokens issued by the IAMCore service.
- iamcore:tenant:create
Tenant Manager v2 supports long-lived API keys for service-to-service authentication. The API key must be issued by the IAMCore service.
Body
Media type: application/json
Type: object
Properties- name: required(string)
Tenant name (required)
- display_name: (string)
Tenant display name (optional)
- package_type: required(string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)
Package type ID
Example:
550e8400-e29b-41d4-a716-446655440000 - admin_template_id: required(string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)
Admin user template ID
Example:
550e8400-e29b-41d4-a716-446655440000 - subscription_type: required(one of PERMANENT, RENEWAL, TRIAL - default: RENEWAL)
Subscription type (PERMANENT or RENEWAL)
Example:
RENEWAL - subscription_end_date: (datetime)
Subscription end date (optional)
Example:
2023-01-01T00:00:00Z
Example:
{
"name": "Staging Environment 2",
"display_name": "Secondary staging environment",
"package_type": "550e8400-e29b-41d4-a716-446655440002",
"admin_template_id": "550e8400-e29b-41d4-a716-446655440003",
"subscription_end_date": "2024-12-31T23:59:59Z"
}
HTTP status code 202
Tenant creation accepted (processing asynchronously)
HTTP status code 400
Bad Request - Invalid request parameters or body
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Invalid request parameters",
"details": {
"field": "name",
"message": "This field is required"
}
}HTTP status code 401
Unauthorized - Authentication required or invalid
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Authentication required"
}HTTP status code 403
Forbidden - Insufficient permissions
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Insufficient permissions to access this resource"
}HTTP status code 404
Not Found - Resource does not exist
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Resource not found"
}HTTP status code 409
Conflict - Tenant with this name already exists
HTTP status code 500
Internal Server Error - Unexpected server error
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Internal server error"
}Secured by oauth_2_0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token issued by IAMCore. This header is required for all API endpoints.
HTTP status code 401
Unauthorized - Invalid or missing access token
HTTP status code 403
Forbidden - Token valid but insufficient permissions
Secured by api_key
Headers
- X-IAMCore-API-Key: required(string)
Used to send a valid IAMCore API key for service-to-service authentication. Example: "X-IAMCore-API-Key: your-api-key"
HTTP status code 401
Unauthorized - Invalid or missing API key
HTTP status code 403
Forbidden - API key valid but insufficient permissions
Operations on a specific tenant identified by tenant primary key
Retrieve detailed information about a specific tenant
Update tenant information
Delete a tenant and all associated resources
get /tenants/{pk}
Retrieve detailed information about a specific tenant
- iamcore:tenant:read
Tenant Manager v2 supports OAuth 2.0 with IAMCore for authenticating all API requests. All endpoints require valid OAuth 2.0 bearer tokens issued by the IAMCore service.
- iamcore:tenant:read
Tenant Manager v2 supports long-lived API keys for service-to-service authentication. The API key must be issued by the IAMCore service.
URI Parameters
- pk: required(string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)
Unique identifier of the tenant
Example:
550e8400-e29b-41d4-a716-446655440000
HTTP status code 200
Successfully retrieved tenant details
Body
Media type: application/json
Type: object
Properties- id: (string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)
Tenant internal ID
Example:
550e8400-e29b-41d4-a716-446655440000 - name: required(string)
Tenant name
- tenant_id: required(string)
Tenant external ID
- login_theme: (string)
Custom login theme for the tenant
- status: required(one of CREATING, UPDATING, FAILED, SUSPENDED, AVAILABLE, DELETED)
Tenant status
Example:
AVAILABLE - opendistro_enabled: required(boolean)
Whether opendistro is enabled
- subscription_type: (one of PERMANENT, RENEWAL, TRIAL)
Subscription type
Example:
RENEWAL - package_type: (string)
Package type identifier
- admin: (object)
Admin user information
- id: required(string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)
Admin user ID
Example:
550e8400-e29b-41d4-a716-446655440000 - irn: required(string)
User IRN (Identity Resource Name)
- email: required(string)
Admin email address
- username: required(string)
Admin username
- first_name: required(string)
Admin first name
- last_name: required(string)
Admin last name
- id: required(string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)
- minio: (object)
Minio service information
- key: required(string)
Minio access key
- status: required(string)
Minio service status
- key: required(string)
- opendistro: (object)
Opendistro service information
- key: required(string)
Opendistro index key
- uuid: required(string)
Opendistro UUID
- status: required(string)
Opendistro service status
- key: required(string)
Example:
{
"id": "5428586f-49a1-45b6-9ab7-de56ebd11e03",
"name": "Production Tenant",
"tenant_id": "tenant-prod-001",
"status": "AVAILABLE",
"opendistro_enabled": true,
"subscription_type": "RENEWAL",
"package_type": "cloud-5",
"admin": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"irn": "user:admin:123",
"email": "admin@example.com",
"username": "admin",
"first_name": "Admin",
"last_name": "Admin"
},
"minio": {
"key": "minio-key-123",
"status": "AVAILABLE"
},
"opendistro": {
"uuid": "tenant-prod-001",
"status": "AVAILABLE"
},
"created": "2023-01-01T00:00:00Z",
"modified": "2023-01-01T00:00:00Z"
}
HTTP status code 400
Bad Request - Invalid request parameters or body
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Invalid request parameters",
"details": {
"field": "name",
"message": "This field is required"
}
}HTTP status code 401
Unauthorized - Authentication required or invalid
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Authentication required"
}HTTP status code 403
Forbidden - Insufficient permissions
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Insufficient permissions to access this resource"
}HTTP status code 404
Not Found - Resource does not exist
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Resource not found"
}HTTP status code 500
Internal Server Error - Unexpected server error
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Internal server error"
}Secured by oauth_2_0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token issued by IAMCore. This header is required for all API endpoints.
HTTP status code 401
Unauthorized - Invalid or missing access token
HTTP status code 403
Forbidden - Token valid but insufficient permissions
Secured by api_key
Headers
- X-IAMCore-API-Key: required(string)
Used to send a valid IAMCore API key for service-to-service authentication. Example: "X-IAMCore-API-Key: your-api-key"
HTTP status code 401
Unauthorized - Invalid or missing API key
HTTP status code 403
Forbidden - API key valid but insufficient permissions
put /tenants/{pk}
Update tenant information
- iamcore:tenant:update
Tenant Manager v2 supports OAuth 2.0 with IAMCore for authenticating all API requests. All endpoints require valid OAuth 2.0 bearer tokens issued by the IAMCore service.
- iamcore:tenant:update
Tenant Manager v2 supports long-lived API keys for service-to-service authentication. The API key must be issued by the IAMCore service.
URI Parameters
- pk: required(string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)
Unique identifier of the tenant
Example:
550e8400-e29b-41d4-a716-446655440000
Body
Media type: application/json
Type: object
Properties- name: required(string)
Tenant name (required)
- display_name: (string)
Tenant display name (optional)
- package_type: required(string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)
Package type ID
Example:
550e8400-e29b-41d4-a716-446655440000 - subscription_type: required(one of PERMANENT, RENEWAL, TRIAL)
Subscription type
Example:
RENEWAL
Example:
{
"name": "Staging Environment 2",
"display_name": "Secondary staging environment",
"package_type": "550e8400-e29b-41d4-a716-446655440002",
"admin_template_id": "550e8400-e29b-41d4-a716-446655440003",
"subscription_end_date": "2024-12-31T23:59:59Z"
}
HTTP status code 200
Tenant updated successfully
Body
Media type: application/json
Type: object
Properties- id: (string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)
Tenant internal ID
Example:
550e8400-e29b-41d4-a716-446655440000 - name: required(string)
Tenant name
- tenant_id: required(string)
Tenant external ID
- login_theme: (string)
Custom login theme for the tenant
- status: required(one of CREATING, UPDATING, FAILED, SUSPENDED, AVAILABLE, DELETED)
Tenant status
Example:
AVAILABLE - opendistro_enabled: required(boolean)
Whether opendistro is enabled
- subscription_type: (one of PERMANENT, RENEWAL, TRIAL)
Subscription type
Example:
RENEWAL - package_type: (string)
Package type identifier
- admin: (object)
Admin user information
- id: required(string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)
Admin user ID
Example:
550e8400-e29b-41d4-a716-446655440000 - irn: required(string)
User IRN (Identity Resource Name)
- email: required(string)
Admin email address
- username: required(string)
Admin username
- first_name: required(string)
Admin first name
- last_name: required(string)
Admin last name
- id: required(string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)
- minio: (object)
Minio service information
- key: required(string)
Minio access key
- status: required(string)
Minio service status
- key: required(string)
- opendistro: (object)
Opendistro service information
- key: required(string)
Opendistro index key
- uuid: required(string)
Opendistro UUID
- status: required(string)
Opendistro service status
- key: required(string)
Example:
{
"id": "5428586f-49a1-45b6-9ab7-de56ebd11e03",
"name": "Production Tenant",
"tenant_id": "tenant-prod-001",
"status": "AVAILABLE",
"opendistro_enabled": true,
"subscription_type": "RENEWAL",
"package_type": "cloud-5",
"admin": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"irn": "user:admin:123",
"email": "admin@example.com",
"username": "admin",
"first_name": "Admin",
"last_name": "Admin"
},
"minio": {
"key": "minio-key-123",
"status": "AVAILABLE"
},
"opendistro": {
"uuid": "tenant-prod-001",
"status": "AVAILABLE"
},
"created": "2023-01-01T00:00:00Z",
"modified": "2023-01-01T00:00:00Z"
}
HTTP status code 400
Bad Request - Invalid request parameters or body
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Invalid request parameters",
"details": {
"field": "name",
"message": "This field is required"
}
}HTTP status code 401
Unauthorized - Authentication required or invalid
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Authentication required"
}HTTP status code 403
Forbidden - Insufficient permissions
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Insufficient permissions to access this resource"
}HTTP status code 404
Not Found - Resource does not exist
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Resource not found"
}HTTP status code 500
Internal Server Error - Unexpected server error
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Internal server error"
}Secured by oauth_2_0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token issued by IAMCore. This header is required for all API endpoints.
HTTP status code 401
Unauthorized - Invalid or missing access token
HTTP status code 403
Forbidden - Token valid but insufficient permissions
Secured by api_key
Headers
- X-IAMCore-API-Key: required(string)
Used to send a valid IAMCore API key for service-to-service authentication. Example: "X-IAMCore-API-Key: your-api-key"
HTTP status code 401
Unauthorized - Invalid or missing API key
HTTP status code 403
Forbidden - API key valid but insufficient permissions
delete /tenants/{pk}
Delete a tenant and all associated resources
- iamcore:tenant:delete
Tenant Manager v2 supports OAuth 2.0 with IAMCore for authenticating all API requests. All endpoints require valid OAuth 2.0 bearer tokens issued by the IAMCore service.
- iamcore:tenant:delete
Tenant Manager v2 supports long-lived API keys for service-to-service authentication. The API key must be issued by the IAMCore service.
URI Parameters
- pk: required(string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)
Unique identifier of the tenant
Example:
550e8400-e29b-41d4-a716-446655440000
HTTP status code 204
Tenant deleted successfully
HTTP status code 400
Bad Request - Invalid request parameters or body
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Invalid request parameters",
"details": {
"field": "name",
"message": "This field is required"
}
}HTTP status code 401
Unauthorized - Authentication required or invalid
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Authentication required"
}HTTP status code 403
Forbidden - Insufficient permissions
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Insufficient permissions to access this resource"
}HTTP status code 404
Not Found - Resource does not exist
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Resource not found"
}HTTP status code 500
Internal Server Error - Unexpected server error
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Internal server error"
}Secured by oauth_2_0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token issued by IAMCore. This header is required for all API endpoints.
HTTP status code 401
Unauthorized - Invalid or missing access token
HTTP status code 403
Forbidden - Token valid but insufficient permissions
Secured by api_key
Headers
- X-IAMCore-API-Key: required(string)
Used to send a valid IAMCore API key for service-to-service authentication. Example: "X-IAMCore-API-Key: your-api-key"
HTTP status code 401
Unauthorized - Invalid or missing API key
HTTP status code 403
Forbidden - API key valid but insufficient permissions
Access tenant credentials and authentication information
Retrieve credentials for the specified tenant
get /tenants/{pk}/credentials
Retrieve credentials for the specified tenant
- iamcore:tenant:read
Tenant Manager v2 supports OAuth 2.0 with IAMCore for authenticating all API requests. All endpoints require valid OAuth 2.0 bearer tokens issued by the IAMCore service.
- iamcore:tenant:read
Tenant Manager v2 supports long-lived API keys for service-to-service authentication. The API key must be issued by the IAMCore service.
URI Parameters
- pk: required(string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)
Unique identifier of the tenant
Example:
550e8400-e29b-41d4-a716-446655440000
HTTP status code 200
Successfully retrieved tenant credentials
Body
Media type: application/json
Type: object
Properties- client_id: required(string)
OAuth client ID
- issuer: required(string)
OAuth issuer URL
- login_url: required(string)
Login URL
- minio_secret: (string)
Minio secret key
- opendistro_secret: (string)
Opendistro secret key
Example:
{
"client_id": "tenant-prod-001-client",
"issuer": "https://auth.example.com",
"login_url": "https://auth.example.com/login",
"minio_secret": "minio-secret-key",
"opendistro_secret": "opendistro-secret-key"
}
HTTP status code 400
Bad Request - Invalid request parameters or body
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Invalid request parameters",
"details": {
"field": "name",
"message": "This field is required"
}
}HTTP status code 401
Unauthorized - Authentication required or invalid
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Authentication required"
}HTTP status code 403
Forbidden - Insufficient permissions
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Insufficient permissions to access this resource"
}HTTP status code 404
Not Found - Resource does not exist
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Resource not found"
}HTTP status code 500
Internal Server Error - Unexpected server error
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Internal server error"
}Secured by oauth_2_0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token issued by IAMCore. This header is required for all API endpoints.
HTTP status code 401
Unauthorized - Invalid or missing access token
HTTP status code 403
Forbidden - Token valid but insufficient permissions
Secured by api_key
Headers
- X-IAMCore-API-Key: required(string)
Used to send a valid IAMCore API key for service-to-service authentication. Example: "X-IAMCore-API-Key: your-api-key"
HTTP status code 401
Unauthorized - Invalid or missing API key
HTTP status code 403
Forbidden - API key valid but insufficient permissions
Package Types
Operations for managing package types. Package types define different service tiers and feature sets available for tenants.
Retrieve available package types
get /packages-types
Retrieve available package types
Tenant Manager v2 supports OAuth 2.0 with IAMCore for authenticating all API requests. All endpoints require valid OAuth 2.0 bearer tokens issued by the IAMCore service.
Tenant Manager v2 supports long-lived API keys for service-to-service authentication. The API key must be issued by the IAMCore service.
Query Parameters
- offset: (integer - default: 0 - minimum: 0)
The number of items to skip before starting to collect the result set
- limit: (integer - default: 100 - minimum: 1 - maximum: 100)
The number of items to return (max 100)
HTTP status code 200
Successfully retrieved package types
Body
Media type: application/json
Type: object
Properties- count: required(integer)
Total number of items
- results: required(array of tenant-manager-api-types.PackageTypeInfo)
List of package type items
Items: PackageTypeInfo
- id: (string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)
Package type ID
Example:
550e8400-e29b-41d4-a716-446655440000 - name: required(string)
Package type name
- devices: required(integer)
Number of devices allowed
- applications: required(integer)
Number of applications allowed
- disk_size: required(integer)
Disk size in MB
- traffic: required(integer)
Traffic allowance
- description: (string)
Package description
- id: (string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)
Example:
{
"count": 7,
"results": [
{
"id": "00000000-0000-0000-0000-000000000005",
"name": "cloud-5",
"devices": 5,
"applications": 5,
"disk_size": 5,
"traffic": 5,
"description": "Cloud package for 5 devices",
"created": "2023-10-24T18:07:56.709497Z",
"modified": "2023-10-24T18:07:56.709497Z"
},
{
"id": "00000000-0000-0000-0000-00000000000f",
"name": "cloud-15",
"devices": 15,
"applications": 15,
"disk_size": 15,
"traffic": 15,
"description": "Cloud package for 15 devices",
"created": "2023-10-24T18:07:56.709497Z",
"modified": "2023-10-24T18:07:56.709497Z"
},
{
"id": "00000000-0000-0000-0000-000000000032",
"name": "cloud-50",
"devices": 50,
"applications": 50,
"disk_size": 50,
"traffic": 50,
"description": "Cloud package for 50 devices",
"created": "2023-10-24T18:07:56.709497Z",
"modified": "2023-10-24T18:07:56.709497Z"
},
{
"id": "00000000-0000-0000-0000-000000000064",
"name": "cloud-100",
"devices": 100,
"applications": 100,
"disk_size": 100,
"traffic": 100,
"description": "Cloud package for 100 devices",
"created": "2023-10-24T18:07:56.709497Z",
"modified": "2023-10-24T18:07:56.709497Z"
},
{
"id": "00000000-0000-0000-0000-0000000000fa",
"name": "cloud-250",
"devices": 250,
"applications": 250,
"disk_size": 250,
"traffic": 250,
"description": "Cloud package for 250 devices",
"created": "2023-10-24T18:07:56.709497Z",
"modified": "2023-10-24T18:07:56.709497Z"
},
{
"id": "00000000-0000-0000-0000-0000000001f4",
"name": "cloud-500",
"devices": 500,
"applications": 500,
"disk_size": 500,
"traffic": 500,
"description": "Cloud package for 500 devices",
"created": "2023-10-24T18:07:56.709497Z",
"modified": "2023-10-24T18:07:56.709497Z"
},
{
"id": "00000000-0000-0000-0000-0000000003e8",
"name": "cloud-1000",
"devices": 1000,
"applications": 1000,
"disk_size": 1000,
"traffic": 1000,
"description": "Cloud package for 1000 devices",
"created": "2023-10-24T18:07:56.709497Z",
"modified": "2023-10-24T18:07:56.709497Z"
}
],
"limit": 100,
"offset": 0
}
HTTP status code 400
Bad Request - Invalid request parameters or body
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Invalid request parameters",
"details": {
"field": "name",
"message": "This field is required"
}
}HTTP status code 401
Unauthorized - Authentication required or invalid
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Authentication required"
}HTTP status code 403
Forbidden - Insufficient permissions
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Insufficient permissions to access this resource"
}HTTP status code 404
Not Found - Resource does not exist
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Resource not found"
}HTTP status code 500
Internal Server Error - Unexpected server error
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Internal server error"
}Secured by oauth_2_0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token issued by IAMCore. This header is required for all API endpoints.
HTTP status code 401
Unauthorized - Invalid or missing access token
HTTP status code 403
Forbidden - Token valid but insufficient permissions
Secured by api_key
Headers
- X-IAMCore-API-Key: required(string)
Used to send a valid IAMCore API key for service-to-service authentication. Example: "X-IAMCore-API-Key: your-api-key"
HTTP status code 401
Unauthorized - Invalid or missing API key
HTTP status code 403
Forbidden - API key valid but insufficient permissions
Operations on a specific package type
Retrieve details of a specific package type
get /packages-types/{pk}
Retrieve details of a specific package type
Tenant Manager v2 supports OAuth 2.0 with IAMCore for authenticating all API requests. All endpoints require valid OAuth 2.0 bearer tokens issued by the IAMCore service.
Tenant Manager v2 supports long-lived API keys for service-to-service authentication. The API key must be issued by the IAMCore service.
URI Parameters
- pk: required(string)
Package type identifier
Example:
1
HTTP status code 200
Successfully retrieved package type details
Body
Media type: application/json
Type: object
Properties- id: (string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)
Package type ID
Example:
550e8400-e29b-41d4-a716-446655440000 - name: required(string)
Package type name
- devices: required(integer)
Number of devices allowed
- applications: required(integer)
Number of applications allowed
- disk_size: required(integer)
Disk size in MB
- traffic: required(integer)
Traffic allowance
- description: (string)
Package description
Example:
{
"id": "00000000-0000-0000-0000-000000000005",
"name": "cloud-5",
"devices": 5,
"applications": 5,
"disk_size": 5,
"traffic": 5,
"description": "Cloud package for 5 devices",
"created": "2023-10-24T18:07:56.709497Z",
"modified": "2023-10-24T18:07:56.709497Z"
}
HTTP status code 400
Bad Request - Invalid request parameters or body
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Invalid request parameters",
"details": {
"field": "name",
"message": "This field is required"
}
}HTTP status code 401
Unauthorized - Authentication required or invalid
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Authentication required"
}HTTP status code 403
Forbidden - Insufficient permissions
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Insufficient permissions to access this resource"
}HTTP status code 404
Not Found - Resource does not exist
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Resource not found"
}HTTP status code 500
Internal Server Error - Unexpected server error
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Internal server error"
}Secured by oauth_2_0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token issued by IAMCore. This header is required for all API endpoints.
HTTP status code 401
Unauthorized - Invalid or missing access token
HTTP status code 403
Forbidden - Token valid but insufficient permissions
Secured by api_key
Headers
- X-IAMCore-API-Key: required(string)
Used to send a valid IAMCore API key for service-to-service authentication. Example: "X-IAMCore-API-Key: your-api-key"
HTTP status code 401
Unauthorized - Invalid or missing API key
HTTP status code 403
Forbidden - API key valid but insufficient permissions
Tenant Subscriptions
Operations for managing tenant subscriptions. Subscriptions link tenants to package types and define billing and feature access.
Retrieve tenant subscriptions
get /tenants-subscriptions
Retrieve tenant subscriptions
- kaa:tenant-subscription:read
Tenant Manager v2 supports OAuth 2.0 with IAMCore for authenticating all API requests. All endpoints require valid OAuth 2.0 bearer tokens issued by the IAMCore service.
- kaa:tenant-subscription:read
Tenant Manager v2 supports long-lived API keys for service-to-service authentication. The API key must be issued by the IAMCore service.
Query Parameters
- tenant_id: required(string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)
Filter subscriptions by tenant (required)
Example:
550e8400-e29b-41d4-a716-446655440000 - offset: (integer - default: 0 - minimum: 0)
The number of items to skip before starting to collect the result set
- limit: (integer - default: 100 - minimum: 1 - maximum: 100)
The number of items to return (max 100)
HTTP status code 200
Successfully retrieved tenant subscriptions
Body
Media type: application/json
Type: object
Properties- count: required(integer)
Total number of items
- results: required(array of tenant-manager-api-types.TenantSubscriptionInfo)
List of subscription items
Items: TenantSubscriptionInfo
- id: (string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)
Subscription ID
Example:
550e8400-e29b-41d4-a716-446655440000 - tenant_id: (string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)
Tenant ID
Example:
550e8400-e29b-41d4-a716-446655440000 - package_type: required(string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)
Package type identifier
Example:
550e8400-e29b-41d4-a716-446655440000 - start_date: required(datetime)
Subscription start date
Example:
2023-01-01T00:00:00Z - end_date: required(datetime)
Subscription end date
Example:
2023-01-01T00:00:00Z
- id: (string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)
Example:
{
"count": 1,
"results": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"tenant_id": "b6d6ac85-e3a2-4153-ad26-5582d2773d40",
"package_type": 5,
"start_date": "2022-04-21T20:35:36.524970Z",
"end_date": "2022-05-21T20:35:36.524970Z"
}
],
"limit": 100,
"offset": 0
}
HTTP status code 400
Bad Request - Invalid request parameters or body
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Invalid request parameters",
"details": {
"field": "name",
"message": "This field is required"
}
}HTTP status code 401
Unauthorized - Authentication required or invalid
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Authentication required"
}HTTP status code 403
Forbidden - Insufficient permissions
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Insufficient permissions to access this resource"
}HTTP status code 404
Not Found - Resource does not exist
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Resource not found"
}HTTP status code 500
Internal Server Error - Unexpected server error
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Internal server error"
}Secured by oauth_2_0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token issued by IAMCore. This header is required for all API endpoints.
HTTP status code 401
Unauthorized - Invalid or missing access token
HTTP status code 403
Forbidden - Token valid but insufficient permissions
Secured by api_key
Headers
- X-IAMCore-API-Key: required(string)
Used to send a valid IAMCore API key for service-to-service authentication. Example: "X-IAMCore-API-Key: your-api-key"
HTTP status code 401
Unauthorized - Invalid or missing API key
HTTP status code 403
Forbidden - API key valid but insufficient permissions
Users
Operations for managing users in the system. Users can be associated with tenants and assigned various roles and permissions.
Retrieve a paginated list of users
Create a new user in the system
get /users
Retrieve a paginated list of users
- kaa:tenant-user:read
Tenant Manager v2 supports OAuth 2.0 with IAMCore for authenticating all API requests. All endpoints require valid OAuth 2.0 bearer tokens issued by the IAMCore service.
- kaa:tenant-user:read
Tenant Manager v2 supports long-lived API keys for service-to-service authentication. The API key must be issued by the IAMCore service.
Query Parameters
- offset: (integer - default: 0 - minimum: 0)
The number of items to skip before starting to collect the result set
- limit: (integer - default: 100 - minimum: 1 - maximum: 100)
The number of items to return (max 100)
HTTP status code 200
Successfully retrieved list of users
Body
Media type: application/json
Type: object
Properties- count: required(integer)
Total number of items
- results: required(array of tenant-manager-api-types.UserTemplateInfo)
List of user template items
Items: UserTemplateInfo
- id: (string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)
User template ID
Example:
550e8400-e29b-41d4-a716-446655440000 - first_name: (string)
First name
- last_name: (string)
Last name
- email: required(string)
Email address
- username: required(string)
Username
- enabled: required(boolean)
Whether user is enabled
- users: (array of tenant-manager-api-types.UserInfo)
Associated user instances
Items: UserInfo
- id: required(string)
User ID
- irn: required(string)
User IRN
- enabled: required(boolean)
Whether user is enabled
- tenant_id: required(string)
Tenant ID
- id: required(string)
- id: (string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)
Example:
{
"count": 1,
"results": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"first_name": "Admin",
"last_name": "Admin",
"email": "admin@example.com",
"username": "admin",
"password": "hashed-password",
"enabled": true,
"users": [
{
"id": "user-123",
"irn": "user:admin:123",
"enabled": true,
"tenant_id": "tenant-123"
}
],
"created": "2023-01-01T00:00:00Z",
"modified": "2023-01-01T00:00:00Z"
}
],
"limit": 100,
"offset": 0
}
HTTP status code 400
Bad Request - Invalid request parameters or body
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Invalid request parameters",
"details": {
"field": "name",
"message": "This field is required"
}
}HTTP status code 401
Unauthorized - Authentication required or invalid
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Authentication required"
}HTTP status code 403
Forbidden - Insufficient permissions
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Insufficient permissions to access this resource"
}HTTP status code 404
Not Found - Resource does not exist
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Resource not found"
}HTTP status code 500
Internal Server Error - Unexpected server error
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Internal server error"
}Secured by oauth_2_0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token issued by IAMCore. This header is required for all API endpoints.
HTTP status code 401
Unauthorized - Invalid or missing access token
HTTP status code 403
Forbidden - Token valid but insufficient permissions
Secured by api_key
Headers
- X-IAMCore-API-Key: required(string)
Used to send a valid IAMCore API key for service-to-service authentication. Example: "X-IAMCore-API-Key: your-api-key"
HTTP status code 401
Unauthorized - Invalid or missing API key
HTTP status code 403
Forbidden - API key valid but insufficient permissions
post /users
Create a new user in the system
- kaa:tenant-user:create
Tenant Manager v2 supports OAuth 2.0 with IAMCore for authenticating all API requests. All endpoints require valid OAuth 2.0 bearer tokens issued by the IAMCore service.
- kaa:tenant-user:create
Tenant Manager v2 supports long-lived API keys for service-to-service authentication. The API key must be issued by the IAMCore service.
Body
Media type: application/json
Type: object
Properties- email: required(string)
Email address (must be valid)
- first_name: required(string)
First name (required, non-empty)
- last_name: required(string)
Last name (required, non-empty)
- username: required(string)
Username (required, non-empty)
- password: required(string - minLength: 8)
Password (min 8 characters)
- enabled: (boolean - default: true)
Whether user should be enabled
Example:
{
"first_name": "Admin",
"last_name": "Admin",
"email": "admin@example.com",
"enabled": true,
"username": "admin",
"password": "secure-password-123"
}
HTTP status code 201
User created successfully
Body
Media type: application/json
Type: object
Properties- id: (string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)
User template ID
Example:
550e8400-e29b-41d4-a716-446655440000 - first_name: (string)
First name
- last_name: (string)
Last name
- email: required(string)
Email address
- username: required(string)
Username
- enabled: required(boolean)
Whether user is enabled
- users: (array of tenant-manager-api-types.UserInfo)
Associated user instances
Items: UserInfo
- id: required(string)
User ID
- irn: required(string)
User IRN
- enabled: required(boolean)
Whether user is enabled
- tenant_id: required(string)
Tenant ID
- id: required(string)
Example:
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"first_name": "Admin",
"last_name": "Admin",
"email": "admin@example.com",
"username": "admin",
"password": "hashed-password",
"enabled": true,
"users": [
{
"id": "user-123",
"irn": "user:instance:123",
"enabled": true,
"tenant_id": "tenant-123"
}
],
"created": "2023-01-01T00:00:00Z",
"modified": "2023-01-01T00:00:00Z"
}
HTTP status code 400
Bad Request - Invalid request parameters or body
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Invalid request parameters",
"details": {
"field": "name",
"message": "This field is required"
}
}HTTP status code 401
Unauthorized - Authentication required or invalid
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Authentication required"
}HTTP status code 403
Forbidden - Insufficient permissions
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Insufficient permissions to access this resource"
}HTTP status code 404
Not Found - Resource does not exist
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Resource not found"
}HTTP status code 500
Internal Server Error - Unexpected server error
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Internal server error"
}Secured by oauth_2_0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token issued by IAMCore. This header is required for all API endpoints.
HTTP status code 401
Unauthorized - Invalid or missing access token
HTTP status code 403
Forbidden - Token valid but insufficient permissions
Secured by api_key
Headers
- X-IAMCore-API-Key: required(string)
Used to send a valid IAMCore API key for service-to-service authentication. Example: "X-IAMCore-API-Key: your-api-key"
HTTP status code 401
Unauthorized - Invalid or missing API key
HTTP status code 403
Forbidden - API key valid but insufficient permissions
Operations on a specific user identified by primary key
Delete a user from the system
delete /users/{pk}
Delete a user from the system
- kaa:tenant-user:delete
Tenant Manager v2 supports OAuth 2.0 with IAMCore for authenticating all API requests. All endpoints require valid OAuth 2.0 bearer tokens issued by the IAMCore service.
- kaa:tenant-user:delete
Tenant Manager v2 supports long-lived API keys for service-to-service authentication. The API key must be issued by the IAMCore service.
URI Parameters
- pk: required(string - pattern: ^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$)
Unique identifier of the user
Example:
550e8400-e29b-41d4-a716-446655440000
HTTP status code 204
User deleted successfully
HTTP status code 400
Bad Request - Invalid request parameters or body
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Invalid request parameters",
"details": {
"field": "name",
"message": "This field is required"
}
}HTTP status code 401
Unauthorized - Authentication required or invalid
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Authentication required"
}HTTP status code 403
Forbidden - Insufficient permissions
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Insufficient permissions to access this resource"
}HTTP status code 404
Not Found - Resource does not exist
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Resource not found"
}HTTP status code 500
Internal Server Error - Unexpected server error
Body
Media type: application/json
Type: object
Properties- error: required(string)
Error message
- details: (object)
Additional error details
Example:
{
"error": "Internal server error"
}Secured by oauth_2_0
Headers
- Authorization: required(string)
Used to send a valid OAuth 2 access token. Example: "Authorization: Bearer 'access_token'" where 'access_token' must be replaced by a valid OAuth access token issued by IAMCore. This header is required for all API endpoints.
HTTP status code 401
Unauthorized - Invalid or missing access token
HTTP status code 403
Forbidden - Token valid but insufficient permissions
Secured by api_key
Headers
- X-IAMCore-API-Key: required(string)
Used to send a valid IAMCore API key for service-to-service authentication. Example: "X-IAMCore-API-Key: your-api-key"
HTTP status code 401
Unauthorized - Invalid or missing API key
HTTP status code 403
Forbidden - API key valid but insufficient permissions