---
title: "Cipherscale API"
url: "https://public-api-docs.cipherscale.com/apis/cipherscale-api-1/versions/fef69080-6094-4620-8bf0-16fd2de7b598"
---

# Cipherscale API

OpenAPI specification document.

```json
{"openapi":"3.0.0","info":{"title":"Cipherscale API","description":"A comprehensive Zero Trust Network Access (ZTNA) platform API that provides secure,  policy-based access control for users, devices, and resources. The API enables  organizations to manage network policies, user authentication, device management,  and resource access through a centralized control plane.","version":"1.0","contact":{"name":"Cipherscale Support","email":"support@cipherscale.com","url":"https://support.cipherscale.com/"}},"servers":[{"url":"https://public-api.cipherscale.com/qa","description":"Cipherscale Public API Server"}],"paths":{"/tenants/users/{id}":{"get":{"operationId":"UsersController_find","summary":"Get User Details","description":"Retrieves comprehensive details of a specific user including their profile information, assigned roles, group memberships, associated devices, and connection status. This endpoint is essential for user management and access control operations.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the user","schema":{"format":"uuid","type":"string"},"example":"123e4567-e89b-12d3-a456-426614174000"}],"responses":{"200":{"description":"Successfully retrieved the user","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserDto"}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions. Requires OWNER, ADMIN, AUDITOR, or SUPPORT role."},"404":{"description":"User not found with the provided ID"}},"tags":["Users"],"security":[{"ApiKeyAuth":[]}]},"put":{"operationId":"UsersController_update","summary":"Update User Profile","description":"Updates user profile information including first name, last name, and profile image. This operation allows administrators to maintain accurate user records and personalization settings.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserDto"}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."},"404":{"description":"User not found with the provided ID"}},"tags":["Users"],"security":[{"ApiKeyAuth":[]}]},"delete":{"operationId":"UsersController_delete","summary":"Delete User Account","description":"Permanently removes a user account from the tenant. This operation will also deactivate all associated devices and revoke all access permissions. This action cannot be undone.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the user to delete","schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"Successfully deleted the user"},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."},"404":{"description":"User not found with the provided ID"}},"tags":["Users"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/users/{id}/deactivate":{"patch":{"operationId":"UsersController_deactivate","summary":"Deactivate User Account","description":"Temporarily disables a user account, preventing them from accessing the network while preserving their data and settings. Deactivated users can be reactivated later. This is useful for temporary suspensions or maintenance.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserDto"}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."},"404":{"description":"User not found with the provided ID"}},"tags":["Users"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/users/{id}/reactivate":{"post":{"operationId":"UsersController_reactivate","summary":"Reactivate User Account","description":"Restores access for a previously deactivated user account. This operation re-enables all user permissions and allows them to reconnect their devices to the network.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserDto"}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."},"404":{"description":"User not found with the provided ID"}},"tags":["Users"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/users/{id}/invite":{"post":{"operationId":"UsersController_invite","summary":"Resend User Invitation","description":"Sends a new invitation email to a user with a pending invitation. This is useful when the original invitation email was not received, expired, or was accidentally deleted. Only users with pending invitation status can be reinvited.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the user to reinvite","schema":{"format":"uuid","type":"string"}}],"responses":{"201":{"description":"Successfully sent invitation email to the user"},"400":{"description":"Bad Request - User has already accepted the invitation"},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."},"404":{"description":"User not found with the provided ID"}},"tags":["Users"],"security":[{"ApiKeyAuth":[]},{"ApiKeyAuth":[]}]}},"/tenants/users/{id}/roles":{"get":{"operationId":"UsersController_findUserRoles","summary":"Get User Role Assignments","description":"Retrieves all roles currently assigned to a specific user, including both direct role assignments and roles inherited through group memberships. This information is crucial for understanding user permissions and access levels.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"groupsOnly","required":false,"in":"query","schema":{"type":"boolean"}},{"name":"rolesOnly","required":false,"in":"query","schema":{"type":"boolean"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RoleDto"}}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."},"404":{"description":"User not found with the provided ID"}},"tags":["Users"],"security":[{"ApiKeyAuth":[]}]},"patch":{"operationId":"UsersController_patchUserRoles","summary":"Modify User Role Assignments","description":"Adds or removes roles from a user's account. This operation allows administrators to dynamically adjust user permissions by modifying their role assignments. Changes take effect immediately and affect the user's access to system resources.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserRolesDto"}}}},"responses":{"200":{"description":""},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."},"404":{"description":"User not found with the provided ID"}},"tags":["Users"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/users/{id}/groups":{"post":{"operationId":"UsersController_addGroup","summary":"Add User to Group","description":"Associates a user with a specific group, which may grant them additional roles and permissions based on the group's configuration. Group membership can affect access policies and resource availability.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"groupId":{"type":"string","format":"uuid","description":"The unique identifier of the group to add the user to"}},"required":["groupId"]}}}},"responses":{"201":{"description":""},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."},"404":{"description":"User not found with the provided ID"}},"tags":["Users"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/users/{id}/groups/{groupId}":{"delete":{"operationId":"UsersController_removeGroup","summary":"Remove User from Group","description":"Disassociates a user from a specific group, which may revoke roles and permissions that were granted through group membership. This operation helps maintain proper access control and organizational structure.","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}},{"name":"groupId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"204":{"description":""},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."},"404":{"description":"User or group not found with the provided ID"}},"tags":["Users"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/users":{"get":{"operationId":"UsersController_findAll","summary":"List All Users","description":"Retrieves a paginated list of all users within the tenant, with support for sorting, filtering, and search functionality. This endpoint is essential for user management dashboards and administrative operations.","parameters":[{"name":"sort","required":false,"in":"query","schema":{"type":"array","items":{"type":"string"}}},{"required":false,"name":"limit","in":"query","schema":{"type":"number"}},{"required":false,"name":"offset","in":"query","schema":{"type":"number"}}],"responses":{"200":{"description":"Successfully retrieved users","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedDto"}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions. Requires OWNER, ADMIN, AUDITOR, or SUPPORT role."}},"tags":["Users"],"security":[{"ApiKeyAuth":[]}]},"post":{"operationId":"UsersController_create","summary":"Create New Users","description":"Creates one or more user accounts for the tenant. Supports bulk creation of up to 100 users in a single request. New users will receive invitation emails to complete their account setup.","requestBody":{"required":true,"description":"User data to create. Can be a single user object or an array of user objects (max 100).","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/CreateUserDto"},{"type":"array","items":{"$ref":"#/components/schemas/CreateUserDto"},"maxItems":100}]}}}},"responses":{"201":{"description":"Successfully created user(s)","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UserDto"},{"type":"object","additionalProperties":{"oneOf":[{"$ref":"#/components/schemas/UserDto"},{"type":"string"}]}}]}}}},"400":{"description":"Invalid user data or too many users provided (max 100)"},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."}},"tags":["Users"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/devices":{"get":{"operationId":"DevicesController_findByCriteria","summary":"List All Devices","description":"Retrieves a paginated list of all devices registered to the tenant with support for filtering, sorting, and search. This endpoint provides comprehensive device information including connection status, user associations, and hardware details.","parameters":[{"name":"sort","required":false,"in":"query","schema":{"type":"array","items":{"type":"string"}}},{"required":false,"name":"limit","in":"query","schema":{"type":"number"}},{"required":false,"name":"offset","in":"query","schema":{"type":"number"}}],"responses":{"200":{"description":"Successfully retrieved devices","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedDto"}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions. Requires OWNER, ADMIN, AUDITOR, or SUPPORT role."}},"tags":["Devices"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/devices/{id}":{"get":{"operationId":"DevicesController_findById","summary":"Get Device Details","description":"Retrieves comprehensive information about a specific device including its configuration, connection status, associated user, hardware details, and security posture information.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the device","schema":{"format":"uuid","type":"string"},"example":"123e4567-e89b-12d3-a456-426614174000"}],"responses":{"200":{"description":"Successfully retrieved the device","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceDto"}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions. Requires OWNER, ADMIN, or AUDITOR role."},"404":{"description":"Device not found with the provided ID"}},"tags":["Devices"],"security":[{"ApiKeyAuth":[]}]},"delete":{"operationId":"DevicesController_delete","summary":"Remove Device","description":"Permanently removes a device from the tenant. This operation will disconnect the device from the network and revoke all associated access permissions.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the device to delete","schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"Successfully deleted the device"},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."},"404":{"description":"Device not found with the provided ID"}},"tags":["Devices"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/devices/{id}/deactivate":{"post":{"operationId":"DevicesController_deactivate","summary":"Deactivate Device","description":"Temporarily disables a device, preventing it from connecting to the network while preserving its configuration and user association. This is useful for security incidents or temporary access restrictions.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the device to deactivate","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Successfully deactivated the device"},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."},"404":{"description":"Device not found with the provided ID"}},"tags":["Devices"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/devices/{id}/reactivate":{"post":{"operationId":"DevicesController_reactivate","summary":"Reactivate Device","description":"Restores network access for a previously deactivated device. This operation allows the device to reconnect to the network with its previous configuration and permissions.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the device to reactivate","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Successfully reactivated the device"},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."},"404":{"description":"Device not found with the provided ID"}},"tags":["Devices"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/gateways":{"post":{"operationId":"GatewaysController_create","summary":"Create New Gateway","description":"Creates a new network gateway that will serve as an access point for users and devices to connect to the tenant's network resources. The gateway will be configured with WireGuard VPN settings and endpoint information.","requestBody":{"required":true,"description":"The gateway data to create","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGatewayDto"}}}},"responses":{"201":{"description":"Successfully created the gateway","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayDto"}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."}},"tags":["Gateways"],"security":[{"ApiKeyAuth":[]}]},"get":{"operationId":"GatewaysController_findAll","summary":"List All Gateways","description":"Retrieves a comprehensive list of all gateways configured for the tenant, including their status, configuration details, and associated resources. This information is essential for network topology management.","responses":{"200":{"description":"Successfully retrieved gateways","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GatewayDto"}}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions. Requires OWNER, ADMIN, AUDITOR, or SUPPORT role."}},"tags":["Gateways"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/gateways/{id}":{"delete":{"operationId":"GatewaysController_delete","summary":"Remove Gateway","description":"Permanently removes a gateway from the tenant. This operation will disconnect all associated resources and may impact network connectivity. Ensure all resources are reassigned to other gateways before deletion.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the gateway to delete","schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"Successfully deleted the gateway"},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."},"404":{"description":"Gateway not found with the provided ID"}},"tags":["Gateways"],"security":[{"ApiKeyAuth":[]}]},"patch":{"operationId":"GatewaysController_update","summary":"Update Gateway Configuration","description":"Updates gateway settings including name, description, WireGuard port, endpoint configuration, and operational status. Changes may require gateway restart to take effect.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the gateway to update","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGatewayDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayDto"}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."},"404":{"description":"Gateway not found with the provided ID"}},"tags":["Gateways"],"security":[{"ApiKeyAuth":[]}]},"get":{"operationId":"GatewaysController_findById","summary":"Get Gateway Details","description":"Retrieves comprehensive information about a specific gateway including its configuration, current status, associated resources, and connection statistics.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the gateway","schema":{"format":"uuid","type":"string"},"example":"123e4567-e89b-12d3-a456-426614174000"}],"responses":{"200":{"description":"Successfully retrieved the gateway","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayDto"}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions. Requires OWNER, ADMIN, AUDITOR, or SUPPORT role."},"404":{"description":"Gateway not found with the provided ID"}},"tags":["Gateways"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/gateways/{id}/enable-relay":{"post":{"operationId":"GatewaysController_enableRelay","summary":"Enable Gateway Relay","description":"Enables relay functionality for the gateway, allowing it to forward traffic between different network segments and improve connectivity for remote users.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the gateway","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayDto"}}}}},"tags":["Gateways"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/gateways/{id}/disable-relay":{"post":{"operationId":"GatewaysController_disableRelay","summary":"Disable Gateway Relay","description":"Disables relay functionality for the gateway, restricting it to direct connections only. This may improve security but reduce connectivity options.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the gateway","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatewayDto"}}}}},"tags":["Gateways"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/gateways/{id}/test-configuration":{"post":{"operationId":"GatewaysController_testConfiguration","summary":"Test Gateway Configuration","description":"Validates the gateway configuration by performing connectivity tests and verifying that all settings are properly configured. This helps identify configuration issues before deployment.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the gateway","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}},"tags":["Gateways"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/resources":{"post":{"operationId":"ResourceController_create","summary":"Create Network Resource","description":"Creates a new network resource that defines access points for users and devices. Resources can be private networks, SaaS applications, or internet access points, each with specific protocols and access controls.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateResourceDto"}}}},"responses":{"201":{"description":"Successfully created the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceDto"}}}},"400":{"description":"Bad Request - Invalid resource data provided"},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."}},"tags":["Resources"],"security":[{"ApiKeyAuth":[]}]},"get":{"operationId":"ResourceController_findAll","summary":"List Network Resources","description":"Retrieves a paginated list of all network resources for the tenant with advanced filtering and sorting capabilities. Supports filtering by resource type, gateway associations, protocols, and other criteria to help manage complex network topologies.","parameters":[{"name":"sort","required":false,"in":"query","description":"Sort order in format \"field:direction\". Sortable fields: id, name. Direction: asc, desc","schema":{"example":"-name","type":"string"}},{"required":false,"name":"limit","in":"query","schema":{"type":"number"}},{"required":false,"name":"offset","in":"query","schema":{"type":"number"}},{"name":"filter[policies.id]","required":false,"in":"query","description":"Filter resources by policy ID (UUID format)","schema":{"example":"123e4567-e89b-12d3-a456-426614174000","type":"string"}},{"name":"filter[gateways.id]","required":false,"in":"query","description":"Filter resources by gateway ID (UUID format)","schema":{"example":"123e4567-e89b-12d3-a456-426614174000","type":"string"}},{"name":"filter[addresses.protocols.id]","required":false,"in":"query","description":"Filter resources by protocol ID in addresses (UUID format)","schema":{"example":"123e4567-e89b-12d3-a456-426614174000","type":"string"}},{"name":"filter[type]","required":false,"in":"query","description":"Filter resources by type","schema":{"enum":["PRIVATE","SAAS","INTERNET"],"type":"string"}},{"name":"filter[name]","required":false,"in":"query","description":"Filter resources by name","schema":{"example":"Resource Name","type":"string"}},{"name":"filter[id]","required":false,"in":"query","description":"Filter resources by ID (UUID format)","schema":{"example":"123e4567-e89b-12d3-a456-426614174000","type":"string"}},{"name":"page[offset]","required":false,"in":"query","description":"Number of resources to skip (minimum: 0)","schema":{"example":0,"type":"number"}},{"name":"page[limit]","required":false,"in":"query","description":"Number of resources to return per page (minimum: 1)","schema":{"example":10,"type":"number"}}],"responses":{"200":{"description":"Successfully retrieved resources","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedDto"}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to access this resource."}},"tags":["Resources"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/resources/{id}":{"patch":{"operationId":"ResourceController_update","summary":"Update Network Resource","description":"Modifies the configuration of an existing network resource including its name, description, and other properties. Changes may affect access policies and user permissions.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the resource to update","schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResourceDto"}}}},"responses":{"200":{"description":"Successfully updated the resource"},"400":{"description":"Bad Request - Invalid resource data provided"},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."},"404":{"description":"Resource not found with the provided ID"}},"tags":["Resources"],"security":[{"ApiKeyAuth":[]}]},"get":{"operationId":"ResourceController_find","summary":"Get Resource Details","description":"Retrieves comprehensive information about a specific network resource including its configuration, associated addresses, protocols, gateway connections, and load balancing settings.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the resource","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Successfully retrieved the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceDto"}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to access this resource."},"404":{"description":"Resource not found with the provided ID"}},"tags":["Resources"],"security":[{"ApiKeyAuth":[]}]},"delete":{"operationId":"ResourceController_delete","summary":"Remove Network Resource","description":"Permanently removes a network resource from the tenant. The resource must not be linked to any active policies before deletion. This operation will also disconnect all associated gateway connections.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the resource to delete","schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Successfully deleted the resource"},"400":{"description":"Bad Request - Resource is linked to policies and cannot be deleted"},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."},"404":{"description":"Resource not found with the provided ID"}},"tags":["Resources"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/resources/{id}/loadBalancing":{"post":{"operationId":"ResourceController_saveLoadBalancing","summary":"Configure Resource Load Balancing","description":"Configures load balancing settings for a resource, determining how traffic is distributed across multiple gateways. Supports both manual gateway selection and automatic load balancing algorithms.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the resource","schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplyLoadBalancingDto"}}}},"responses":{"201":{"description":"Successfully applied load balancing configuration"},"400":{"description":"Bad Request - Invalid load balancing configuration data"},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."},"404":{"description":"Resource not found with the provided ID"}},"tags":["Resources"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/resources/{id}/gateways":{"post":{"operationId":"ResourceController_newResourceConnection","summary":"Connect Resource to Gateways","description":"Establishes network connections between a resource and one or more gateways, enabling users to access the resource through those gateways. This operation is essential for defining network topology and access paths.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the resource","schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"gateways":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Comma-separated list of gateway IDs"}},"required":["gateways"]}}}},"responses":{"201":{"description":"Successfully created resource-gateway connections","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AccessPointDto"}}}}},"400":{"description":"Bad Request - Invalid gateway IDs provided"},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."},"404":{"description":"Resource or gateway not found with the provided ID"}},"tags":["Resources"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/resources/{id}/gateways/{gatewayId}":{"delete":{"operationId":"ResourceController_deleteResourceConnection","summary":"Disconnect Resource from Gateway","description":"Removes the network connection between a resource and a specific gateway, preventing access to the resource through that gateway. This operation helps manage network topology and access control.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the resource","schema":{"type":"string","format":"uuid"}},{"name":"gatewayId","required":true,"in":"path","description":"The unique identifier (UUID) of the gateway to disconnect","schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Successfully disconnected resource from gateway"},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."},"404":{"description":"Resource or gateway not found with the provided ID"}},"tags":["Resources"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/addresses":{"get":{"operationId":"AddressController_findAll","summary":"List All Network Addresses","description":"Retrieves all network addresses configured for the tenant, including IP addresses, hostnames, and domain names with their associated protocols and access types.","responses":{"200":{"description":"Successfully retrieved addresses","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AddressDto"}}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions. Requires OWNER, ADMIN, AUDITOR, or SUPPORT role."}},"tags":["Addresses"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/addresses/{id}":{"get":{"operationId":"AddressController_find","summary":"Get Address Details","description":"Retrieves detailed information about a specific network address including its type, associated protocols, and linked gateways.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier of the address","schema":{"type":"string"}}],"responses":{"200":{"description":"Successfully retrieved the address","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressDto"}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions. Requires OWNER, ADMIN, AUDITOR, or SUPPORT role."},"404":{"description":"Address not found with the provided ID"}},"tags":["Addresses"],"security":[{"ApiKeyAuth":[]}]},"put":{"operationId":"AddressController_update","summary":"Update Network Address","description":"Modifies the configuration of an existing network address including its associated protocols and access settings.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier of the address to update","schema":{"type":"string"}}],"requestBody":{"required":true,"description":"The address data to update","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAddressDto"}}}},"responses":{"200":{"description":"Successfully updated the address","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressDto"}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."},"404":{"description":"Address not found with the provided ID"}},"tags":["Addresses"],"security":[{"ApiKeyAuth":[]}]},"delete":{"operationId":"AddressController_delete","summary":"Remove Network Address","description":"Permanently removes a network address from the tenant. This operation will also remove the address from any associated resources.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier of the address to delete","schema":{"type":"string"}}],"responses":{"200":{"description":"Successfully deleted the address"},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."},"404":{"description":"Address not found with the provided ID"}},"tags":["Addresses"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/addresses/{id}/gateways":{"get":{"operationId":"AddressController_findLinkedGateways","summary":"Get Gateways for Address","description":"Retrieves all gateways that provide access to the specified network address, showing the network topology and access paths for the address.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier of the address","schema":{"type":"string"}}],"responses":{"200":{"description":"Successfully retrieved linked gateways","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GatewayDto"}}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions. Requires OWNER, ADMIN, AUDITOR, or SUPPORT role."},"404":{"description":"Address not found with the provided ID"}},"tags":["Addresses"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/protocols":{"post":{"operationId":"ProtocolController_create","summary":"Create Network Protocol","description":"Creates a new network protocol definition that specifies allowed network protocols (TCP, UDP, ICMP) and ports for network access control.","requestBody":{"required":true,"description":"The protocol data to create","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProtocolDto"}}}},"responses":{"201":{"description":"Successfully created the protocol","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProtocolDto"}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."}},"tags":["Protocols"],"security":[{"ApiKeyAuth":[]}]},"get":{"operationId":"ProtocolController_findAll","summary":"List Network Protocols","description":"Retrieves all network protocols configured for the tenant, including both predefined and custom protocol definitions with their associated network protocol settings.","responses":{"200":{"description":"Successfully retrieved protocols","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProtocolDto"}}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions. Requires OWNER, ADMIN, AUDITOR, or SUPPORT role."}},"tags":["Protocols"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/protocols/{id}":{"delete":{"operationId":"ProtocolController_delete","summary":"Remove Network Protocol","description":"Permanently removes a network protocol definition from the tenant. This operation will affect any resources or addresses that use this protocol.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the protocol to delete","schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"Successfully deleted the protocol"},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."},"404":{"description":"Protocol not found with the provided ID"}},"tags":["Protocols"],"security":[{"ApiKeyAuth":[]}]},"get":{"operationId":"ProtocolController_find","summary":"Get Protocol Details","description":"Retrieves detailed information about a specific network protocol including its name, type, and associated network protocol settings (TCP, UDP, ICMP).","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the protocol","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Successfully retrieved the protocol","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProtocolDto"}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions. Requires OWNER, ADMIN, AUDITOR, or SUPPORT role."},"404":{"description":"Protocol not found with the provided ID"}},"tags":["Protocols"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/roles":{"get":{"operationId":"RolesController_findAll","summary":"List All Roles","description":"Retrieves all user roles available in the tenant, including system-defined roles (OWNER, ADMIN, etc.) and custom roles with their permissions and capabilities.","responses":{"200":{"description":"Successfully retrieved roles","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RoleDto"}}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions. Requires OWNER, ADMIN, AUDITOR, or SUPPORT role."}},"tags":["Roles"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/roles/{id}":{"get":{"operationId":"RolesController_find","summary":"Get Role Details","description":"Retrieves detailed information about a specific role including its permissions, type, and whether it can be deleted or modified.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the role","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Successfully retrieved the role","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleDto"}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions. Requires OWNER, ADMIN, AUDITOR, or SUPPORT role."},"404":{"description":"Role not found with the provided ID"}},"tags":["Roles"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/roles/{id}/users":{"get":{"operationId":"RolesController_findRoleUsers","summary":"Get Users with Role","description":"Retrieves all users who have been assigned a specific role, including both direct assignments and users who inherit the role through group membership.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the role","schema":{"format":"uuid","type":"string"}},{"name":"groups","required":false,"in":"query","description":"Whether to include users from groups that have this role","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Successfully retrieved users assigned to the role","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserDto"}}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions. Requires OWNER, ADMIN, AUDITOR, or SUPPORT role."},"404":{"description":"Role not found with the provided ID"}},"tags":["Roles"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/roles/{id}/users/{userId}":{"delete":{"operationId":"RolesController_removeRole","summary":"Remove User from Role","description":"Removes a specific role assignment from a user, revoking the associated permissions. This operation affects the user's access to system resources.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the role","schema":{"format":"uuid","type":"string"}},{"name":"userId","required":true,"in":"path","description":"The unique identifier (UUID) of the user to remove from the role","schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"Successfully removed user from role"},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."},"404":{"description":"Role or user not found with the provided IDs"}},"tags":["Roles"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/groups":{"post":{"operationId":"GroupsController_create","summary":"Create User Group","description":"Creates a new user group with assigned roles and permissions. Groups provide a way to manage multiple users with similar access requirements efficiently.","requestBody":{"required":true,"description":"The group data to create","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGroupDto"}}}},"responses":{"201":{"description":"Successfully created the group","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupDto"}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."}},"tags":["Groups"],"security":[{"ApiKeyAuth":[]}]},"get":{"operationId":"GroupsController_findAll","summary":"List All User Groups","description":"Retrieves a paginated list of all user groups in the tenant, including their role assignments, member counts, and configuration settings.","parameters":[{"name":"sort","required":false,"in":"query","schema":{"type":"array","items":{"type":"string"}}},{"required":false,"name":"limit","in":"query","schema":{"type":"number"}},{"required":false,"name":"offset","in":"query","schema":{"type":"number"}}],"responses":{"200":{"description":"Successfully retrieved groups","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedDto"}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions. Requires OWNER, ADMIN, AUDITOR, or SUPPORT role."}},"tags":["Groups"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/groups/{id}":{"put":{"operationId":"GroupsController_update","summary":"Update User Group","description":"Modifies the configuration of an existing user group including its name, description, role assignments, and other settings.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the group to update","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGroupDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupDto"}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."},"404":{"description":"Group not found with the provided ID"}},"tags":["Groups"],"security":[{"ApiKeyAuth":[]}]},"get":{"operationId":"GroupsController_find","summary":"Get Group Details","description":"Retrieves comprehensive information about a specific user group including its members, assigned roles, permissions, and configuration settings.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the group","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Successfully retrieved the group","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupDto"}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions. Requires OWNER, ADMIN, AUDITOR, or SUPPORT role."},"404":{"description":"Group not found with the provided ID"}},"tags":["Groups"],"security":[{"ApiKeyAuth":[]}]},"delete":{"operationId":"GroupsController_delete","summary":"Remove User Group","description":"Permanently removes a user group from the tenant. This operation will also remove all group members and revoke group-based permissions.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the group to delete","schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"Successfully deleted the group"},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."},"404":{"description":"Group not found with the provided ID"}},"tags":["Groups"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/admission-rules":{"post":{"operationId":"AdmissionRulesController_create","summary":"Create Admission Rule","description":"Creates a new admission rule that defines conditions for allowing or denying access to network resources. Admission rules can include time constraints and custom logic for fine-grained access control.","requestBody":{"required":true,"description":"The admission rule data to create","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAdmissionRuleDto"}}}},"responses":{"201":{"description":"Successfully created the admission rule","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdmissionRuleDto"}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."}},"tags":["Admission Rules"],"security":[{"ApiKeyAuth":[]}]},"get":{"operationId":"AdmissionRulesController_findAll","summary":"List All Admission Rules","description":"Retrieves all admission rules configured for the tenant, showing the complete set of access control conditions that govern network access.","responses":{"200":{"description":"Successfully retrieved admission rules","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AdmissionRuleDto"}}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions. Requires OWNER, ADMIN, AUDITOR, or SUPPORT role."}},"tags":["Admission Rules"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/admission-rules/{id}":{"put":{"operationId":"AdmissionRulesController_update","summary":"Update Admission Rule","description":"Modifies the configuration of an existing admission rule including its name, rule logic, and time constraints. Changes affect access control immediately.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the admission rule to update","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"description":"The admission rule data to update","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAdmissionRuleDto"}}}},"responses":{"200":{"description":"Successfully updated the admission rule","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdmissionRuleDto"}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."},"404":{"description":"Admission rule not found with the provided ID"}},"tags":["Admission Rules"],"security":[{"ApiKeyAuth":[]}]},"get":{"operationId":"AdmissionRulesController_find","summary":"Get Admission Rule Details","description":"Retrieves detailed information about a specific admission rule including its configuration, rule logic, time constraints, and type (ALLOW/DENY/CUSTOM).","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the admission rule","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Successfully retrieved the admission rule","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdmissionRuleDto"}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions. Requires OWNER, ADMIN, or AUDITOR role."},"404":{"description":"Admission rule not found with the provided ID"}},"tags":["Admission Rules"],"security":[{"ApiKeyAuth":[]}]},"delete":{"operationId":"AdmissionRulesController_delete","summary":"Remove Admission Rule","description":"Permanently removes an admission rule from the tenant. This operation will affect any policies that reference this rule.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the admission rule to delete","schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":"Successfully deleted the admission rule"},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."},"404":{"description":"Admission rule not found with the provided ID"}},"tags":["Admission Rules"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/policies":{"post":{"operationId":"PoliciesController_create","summary":"Create Access Policy","description":"Creates a new access policy that defines which users, devices, and groups can access specific network resources. Policies are the core of the Zero Trust access control system and determine network access permissions. required: true content:\n  application/json:\n    schema:\n      $ref: \"#/components/schemas/CreatePolicyDto\"","responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyDto"}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."}},"tags":["Policies"],"security":[{"ApiKeyAuth":[]}]},"get":{"operationId":"PoliciesController_findAll","summary":"List All Access Policies","description":"Retrieves a paginated list of all access policies for the tenant with advanced filtering capabilities. Policies are ordered by priority and determine network access permissions for users and devices. - name: sort\n  required: false\n  in: query\n  description: >-\n    Sort order in JSON format {\"field\": \"direction\"}. Sortable fields:\n    id, order. Direction: asc, desc\n  schema:\n    example: \"-order,id\"\n    type: string\n- required: false\n  name: limit\n  in: query\n  schema:\n    type: number\n- required: false\n  name: offset\n  in: query\n  schema:\n    type: number\n- name: filter[resources.id]\n  required: false\n  in: query\n  description: Filter policies by resource ID (UUID format)\n  schema:\n    example: 123e4567-e89b-12d3-a456-426614174000\n    type: string\n- name: filter[allResources]\n  required: false\n  in: query\n  description: Filter policies by all resources flag\n  schema:\n    example: true\n    type: boolean\n- name: filter[devices.id]\n  required: false\n  in: query\n  description: Filter policies by device ID (UUID format)\n  schema:\n    example: 123e4567-e89b-12d3-a456-426614174000\n    type: string\n- name: filter[groups.id]\n  required: false\n  in: query\n  description: Filter policies by group ID (UUID format)\n  schema:\n    example: 123e4567-e89b-12d3-a456-426614174000\n    type: string\n- name: filter[users.id]\n  required: false\n  in: query\n  description: Filter policies by user ID (UUID format)\n  schema:\n    example: 123e4567-e89b-12d3-a456-426614174000\n    type: string\n- name: filter[allUsers]\n  required: false\n  in: query\n  description: Filter policies by all users flag\n  schema:\n    example: true\n    type: boolean\n- name: filter[allGroups]\n  required: false\n  in: query\n  description: Filter policies by all groups flag\n  schema:\n    example: false\n    type: boolean\n- name: filter[allDevices]\n  required: false\n  in: query\n  description: Filter policies by all devices flag\n  schema:\n    example: true\n    type: boolean\n- name: filter[rule.id]\n  required: false\n  in: query\n  description: Filter policies by rule ID (UUID format)\n  schema:\n    example: 123e4567-e89b-12d3-a456-426614174000\n    type: string\n- name: filter[id]\n  required: false\n  in: query\n  description: Filter policies by ID (UUID format)\n  schema:\n    example: 123e4567-e89b-12d3-a456-426614174000\n    type: string\n- name: filter[name]\n  required: false\n  in: query\n  description: Filter policies by name\n  schema:\n    example: My Policy\n    type: string\n- name: filter[type]\n  required: false\n  in: query\n  description: Filter policies by type\n  schema:\n    enum:\n      - PRIVATE\n      - SAAS\n      - INTERNET\n      - SITETOSITE\n    type: string\n- name: page[offset]\n  required: false\n  in: query\n  description: \"Number of policies to skip (minimum: 0)\"\n  schema:\n    example: 0\n    type: number\n- name: page[limit]\n  required: false\n  in: query\n  description: \"Number of policies to return per page (minimum: 1)\"\n  schema:\n    example: 10\n    type: number","responses":{"200":{"description":""},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."}},"tags":["Policies"],"security":[{"ApiKeyAuth":[]}]},"patch":{"operationId":"PoliciesController_reorder","summary":"Reorder Access Policies","description":"Changes the priority order of access policies. Policy order is crucial as policies are evaluated in sequence, and the first matching policy determines access permissions. required: true content:\n  application/json:\n    schema:\n      type: array\n      items:\n        type: string","responses":{"200":{"description":""},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."}},"tags":["Policies"],"security":[{"ApiKeyAuth":[]}]}},"/tenants/policies/{id}":{"delete":{"operationId":"PoliciesController_delete","summary":"Remove Access Policy","description":"Permanently removes an access policy from the tenant. This operation will affect network access permissions for all users and devices covered by this policy.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the policy to delete","schema":{"format":"uuid","type":"string"}}],"responses":{"204":{"description":""},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."},"404":{"description":"Policy not found with the provided ID"}},"tags":["Policies"],"security":[{"ApiKeyAuth":[]}]},"patch":{"operationId":"PoliciesController_update","summary":"Update Access Policy","description":"Modifies the configuration of an existing access policy including its rules, target users/devices/resources, and access permissions. Changes take effect immediately and affect network access.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the policy to update","schema":{"format":"uuid","type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePolicyDto"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyDto"}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."},"404":{"description":"Policy not found with the provided ID"}},"tags":["Policies"],"security":[{"ApiKeyAuth":[]}]},"get":{"operationId":"PoliciesController_find","summary":"Get Policy Details","description":"Retrieves comprehensive information about a specific access policy including its configuration, target entities, rules, and current status.","parameters":[{"name":"id","required":true,"in":"path","description":"The unique identifier (UUID) of the policy","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyDto"}}}},"401":{"description":"Unauthorized - Invalid or missing authentication token"},"403":{"description":"Forbidden - Insufficient permissions to perform this operation."},"404":{"description":"Policy not found with the provided ID"}},"tags":["Policies"],"security":[{"ApiKeyAuth":[]}]}}},"tags":[{"name":"Users","description":"User account management and authentication"},{"name":"Devices","description":"Device registration, management, and monitoring"},{"name":"Gateways","description":"Network gateway configuration and management"},{"name":"Resources","description":"Network resource definition and access control"},{"name":"Addresses","description":"Network address and endpoint management"},{"name":"Protocols","description":"Network protocol definitions and configurations"},{"name":"Roles","description":"User role and permission management"},{"name":"Groups","description":"User group management and role assignments"},{"name":"Admission Rules","description":"Access control rules and conditions"},{"name":"Policies","description":"Network access policies and permissions"}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"apikey"}},"schemas":{"RoleDto":{"type":"object","description":"User role definition with specific permissions and capabilities","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier for the role"},"createdAt":{"format":"date-time","type":"string","description":"Timestamp when the role was created"},"updatedAt":{"format":"date-time","type":"string","description":"Timestamp when the role was last modified"},"name":{"type":"string","description":"Human-readable name of the role"},"description":{"type":"string","description":"Detailed description of the role's purpose and permissions"},"deleteable":{"type":"boolean","description":"Whether this role can be deleted (system roles are typically not deletable)"},"type":{"enum":["OWNER","ADMIN","DEFAULT","BASIC","BILLING","AUDITOR"],"type":"string","description":"Predefined role type that determines the base permissions"}},"required":["id","createdAt","updatedAt","name","deleteable","type"]},"UserGroupDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"name":{"type":"string"},"description":{"type":"string"}},"required":["id","createdAt","updatedAt","name"]},"DeviceUserDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"lastConnection":{"format":"date-time","type":"string"},"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"}},"required":["id","lastConnection"]},"DeviceDto":{"type":"object","description":"Device information including connection status, user association, and security posture","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier for the device"},"createdAt":{"format":"date-time","type":"string","description":"Timestamp when the device was registered"},"updatedAt":{"format":"date-time","type":"string","description":"Timestamp when the device information was last updated"},"name":{"type":"string","description":"Human-readable name for the device"},"active":{"type":"boolean","description":"Whether the device is currently active and can connect"},"lastConnection":{"format":"date-time","type":"string","description":"Timestamp of the device's last network connection"},"status":{"enum":["Online","Offline","Deactivated"],"type":"string","description":"Current connection status of the device"},"user":{"$ref":"#/components/schemas/DeviceUserDto","description":"Information about the user who owns this device"},"hardwareId":{"type":"string","description":"Unique hardware identifier for the device"},"posture":{"type":"object","description":"Security posture information and compliance status"},"appVersion":{"type":"string","description":"Version of the Cipherscale client application installed on the device"}},"required":["id","createdAt","updatedAt","name","active","status","hardwareId"]},"UserDto":{"type":"object","description":"Complete user profile with authentication, authorization, and device information","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier for the user"},"createdAt":{"format":"date-time","type":"string","description":"Timestamp when the user account was created"},"updatedAt":{"format":"date-time","type":"string","description":"Timestamp when the user account was last modified"},"lastConnection":{"format":"date-time","type":"string","description":"Timestamp of the user's last network connection"},"email":{"type":"string","description":"User's email address used for authentication"},"status":{"type":"string","description":"Current status of the user account (active, inactive, pending, etc.)"},"firstName":{"type":"string","description":"User's first name"},"lastName":{"type":"string","description":"User's last name"},"isOwner":{"type":"boolean","description":"Whether this user is the tenant owner"},"maxDevices":{"type":"number","nullable":true,"description":"Maximum number of devices this user can register"},"image":{"type":"string","description":"URL or path to the user's profile image"},"roles":{"type":"array","items":{"$ref":"#/components/schemas/RoleDto"},"description":"List of roles assigned to this user"},"groups":{"type":"array","items":{"$ref":"#/components/schemas/UserGroupDto"},"description":"List of groups this user belongs to"},"devices":{"type":"array","items":{"$ref":"#/components/schemas/DeviceDto"},"description":"List of devices registered to this user"}},"required":["id","createdAt","updatedAt","status","isOwner","maxDevices","roles","groups","devices"]},"CreateUserDto":{"type":"object","properties":{"email":{"type":"string"},"groups":{"type":"array","items":{"type":"string","format":"uuid"}}},"required":["email","groups"]},"PaginatedDto":{"type":"object","properties":{}},"UpdateUserDto":{"type":"object","properties":{"firstName":{"type":"string"},"lastName":{"type":"string"},"image":{"type":"string"}}},"UpdateUserRolesDto":{"type":"object","properties":{"addedRoles":{"type":"array","items":{"type":"string"}},"removedRoles":{"type":"array","items":{"type":"string"}}},"required":["addedRoles","removedRoles"]},"CreateGatewayDto":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"wireguardPort":{"type":"string"},"endpoint":{"type":"string"}},"required":["name","wireguardPort"]},"GatewayResourceDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"}},"required":["id","name"]},"GatewayDto":{"type":"object","description":"Network gateway configuration and status information","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier for the gateway"},"createdAt":{"format":"date-time","type":"string","description":"Timestamp when the gateway was created"},"deployedOn":{"format":"date-time","type":"string","nullable":true,"description":"Timestamp when the gateway was first successfully deployed"},"updatedAt":{"format":"date-time","type":"string","description":"Timestamp when the gateway was last updated"},"name":{"type":"string","description":"Human-readable name for the gateway"},"description":{"type":"string","description":"Detailed description of the gateway's purpose and location"},"wireguardPort":{"type":"string","description":"WireGuard VPN port number for this gateway"},"status":{"enum":["PENDING","ONLINE","OFFLINE","MAINTENANCE","ERROR"],"type":"string","description":"Current operational status of the gateway"},"error":{"type":"string","description":"Error message if the gateway is in ERROR status"},"token":{"type":"string","description":"Authentication token for gateway communication"},"lastOnline":{"format":"date-time","type":"string","description":"Timestamp when the gateway was last online"},"relayEnabled":{"type":"boolean","description":"Whether the gateway can relay traffic between network segments"},"endpoint":{"type":"string","description":"Network endpoint address for the gateway"},"autoDiscoverEndpoint":{"type":"boolean","description":"Whether the gateway endpoint is automatically discovered"},"resources":{"type":"array","items":{"$ref":"#/components/schemas/GatewayResourceDto"},"description":"List of resources accessible through this gateway"}},"required":["id","createdAt","deployedOn","updatedAt","name","wireguardPort","status","token","autoDiscoverEndpoint"]},"UpdateGatewayDto":{"type":"object","properties":{"status":{"type":"string","enum":["PENDING","ONLINE","OFFLINE","MAINTENANCE","ERROR"]},"name":{"type":"string"},"description":{"type":"string"},"wireguardPort":{"type":"string"},"endpoint":{"type":"string"}},"required":["name","wireguardPort"]},"NetworkProtocolDto":{"type":"object","properties":{"protocol":{"type":"string","enum":["TCP","UDP","ICMP"]},"port":{"type":"string"}},"required":["protocol"]},"ProtocolDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"networkProtocols":{"type":"array","items":{"$ref":"#/components/schemas/NetworkProtocolDto"}},"type":{"enum":["ALL","PREDEFINED","CUSTOM"],"type":"string"}},"required":["id","name","networkProtocols","type"]},"AddressDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"address":{"type":"string"},"isIp":{"type":"boolean"},"type":{"enum":["PRIVATE","SAAS","INTERNET"],"type":"string"},"protocols":{"type":"array","items":{"$ref":"#/components/schemas/ProtocolDto"}}},"required":["id","address","isIp","type","protocols"]},"AccessPointDto":{"type":"object","properties":{"addressId":{"type":"string"},"gatewayId":{"type":"string"}},"required":["addressId","gatewayId"]},"CreateAddressDto":{"type":"object","properties":{"protocols":{"type":"array","items":{"type":"string","format":"uuid"}},"address":{"type":"string"}},"required":["protocols","address"]},"CreateResourceDto":{"type":"object","properties":{"addresses":{"type":"array","items":{"$ref":"#/components/schemas/CreateAddressDto"}},"name":{"type":"string"},"type":{"type":"string","enum":["PRIVATE","SAAS","INTERNET"]},"description":{"type":"string"}},"required":["addresses","name","type"]},"ResourceDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"name":{"type":"string"},"type":{"enum":["PRIVATE","SAAS","INTERNET"],"type":"string"},"loadBalancingMode":{"default":"MANUAL","enum":["MANUAL","AUTOMATIC"],"type":"string"},"status":{"enum":["ONLINE","OFFLINE"],"type":"string"},"description":{"type":"string"},"addresses":{"type":"array","items":{"$ref":"#/components/schemas/AddressDto"}},"gateways":{"type":"array","items":{"$ref":"#/components/schemas/GatewayDto"}}},"required":["id","createdAt","updatedAt","name","type","loadBalancingMode","addresses","gateways"]},"ResourceTypeStatisticsDto":{"type":"object","properties":{"totalCount":{"type":"number","description":"Total number of resources"},"onlineCount":{"type":"number","description":"Number of online resources"},"offlineCount":{"type":"number","description":"Number of offline resources"},"withoutGatewayCount":{"type":"number","description":"Number of resources without a gateway"},"withoutPolicyCount":{"type":"number","description":"Number of resources without a policy"}},"required":["totalCount","onlineCount","offlineCount","withoutGatewayCount","withoutPolicyCount"]},"UpdateResourceDto":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"}},"required":["name"]},"SimpleAddressDto":{"type":"object","properties":{"protocols":{"type":"array","items":{"type":"string","format":"uuid"}},"address":{"type":"string"}},"required":["protocols","address"]},"ApplyLoadBalancingDto":{"type":"object","properties":{"loadBalancingMode":{"default":"MANUAL","enum":["MANUAL","AUTOMATIC"],"type":"string"},"gateways":{"type":"array","items":{"type":"string"}}},"required":["loadBalancingMode","gateways"]},"UpdateAddressDto":{"type":"object","properties":{"protocols":{"type":"array","items":{"type":"string","format":"uuid"}},"address":{"type":"string"}},"required":["protocols","address"]},"CreateProtocolDto":{"type":"object","properties":{"name":{"type":"string"},"networkProtocols":{"type":"array","items":{"$ref":"#/components/schemas/NetworkProtocolDto"}}},"required":["networkProtocols"]},"CreateGroupDto":{"type":"object","properties":{"roles":{"type":"array","items":{"type":"string"}},"name":{"type":"string"},"description":{"type":"string"}},"required":["roles","name"]},"GroupUserDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string"}},"required":["id","createdAt","updatedAt","firstName","lastName","email"]},"GroupDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"name":{"type":"string"},"description":{"type":"string"},"roles":{"type":"array","items":{"$ref":"#/components/schemas/RoleDto"}},"deleteable":{"type":"boolean"},"users":{"type":"array","items":{"$ref":"#/components/schemas/GroupUserDto"}},"maxDevices":{"type":"number"},"isSamlDefaultGroup":{"type":"boolean"},"idpMapping":{"type":"array","items":{"type":"string"}}},"required":["id","createdAt","updatedAt","name","roles","deleteable","users","maxDevices","isSamlDefaultGroup","idpMapping"]},"UpdateGroupDto":{"type":"object","properties":{"roles":{"type":"array","items":{"type":"string"}},"name":{"type":"string"},"description":{"type":"string"}},"required":["roles","name"]},"CreateAdmissionRuleDto":{"type":"object","properties":{"rule":{"type":"string"},"name":{"type":"string"},"hasTimeConstraint":{"type":"boolean"}},"required":["rule","name","hasTimeConstraint"]},"AdmissionRuleDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"name":{"type":"string"},"type":{"enum":["ALLOW","DENY","CUSTOM"],"type":"string"},"hasTimeConstraint":{"type":"boolean"},"rule":{"type":"string"}},"required":["id","createdAt","updatedAt","name","type","hasTimeConstraint"]},"UpdateAdmissionRuleDto":{"type":"object","properties":{"rule":{"type":"string"},"name":{"type":"string"},"hasTimeConstraint":{"type":"boolean"}},"required":["rule","name","hasTimeConstraint"]},"CreatePolicyDto":{"type":"object","properties":{"groups":{"type":"array","items":{"type":"string"}},"users":{"type":"array","items":{"type":"string"}},"devices":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}},"gateways":{"type":"array","items":{"type":"string"}},"rule":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"allGroups":{"type":"object","default":false},"allUsers":{"type":"object","default":false},"allDevices":{"type":"object","default":false},"allResources":{"type":"object","default":false},"sourceIps":{"type":"array","items":{"type":"string"}},"type":{"type":"string","enum":["PRIVATE","SAAS","INTERNET","SITETOSITE"]},"mode":{"type":"string","enum":["LOCAL","RESTRICTED","INTERNET_ACCESS_POINT"]},"action":{"type":"boolean"}},"required":["name","allGroups","allUsers","allDevices","allResources","type","action"]},"PolicyGroupDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"name":{"type":"string"},"description":{"type":"string"},"maxDevices":{"type":"number"},"isSamlDefaultGroup":{"type":"boolean"},"idpMapping":{"type":"array","items":{"type":"string"}}},"required":["id","createdAt","updatedAt","name","maxDevices","isSamlDefaultGroup","idpMapping"]},"PolicyUserDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"lastConnection":{"format":"date-time","type":"string"},"email":{"type":"string"},"status":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"isOwner":{"type":"boolean"},"maxDevices":{"type":"number","nullable":true},"image":{"type":"string"}},"required":["id","createdAt","updatedAt","status","isOwner","maxDevices"]},"PolicyDeviceDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"name":{"type":"string"},"active":{"type":"boolean"},"lastConnection":{"format":"date-time","type":"string"},"status":{"type":"string","enum":["Online","Offline","Deactivated"]},"hardwareId":{"type":"string"},"posture":{"type":"object"},"appVersion":{"type":"string"}},"required":["id","createdAt","updatedAt","name","active","status","hardwareId"]},"PolicyResourceDto":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"createdAt":{"format":"date-time","type":"string"},"updatedAt":{"format":"date-time","type":"string"},"name":{"type":"string"},"type":{"type":"string","enum":["PRIVATE","SAAS","INTERNET"]},"loadBalancingMode":{"type":"string","default":"MANUAL","enum":["MANUAL","AUTOMATIC"]},"description":{"type":"string"}},"required":["id","createdAt","updatedAt","name","type","loadBalancingMode"]},"PolicyDto":{"type":"object","description":"Access policy defining who can access what resources under what conditions","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier for the policy"},"createdAt":{"format":"date-time","type":"string","description":"Timestamp when the policy was created"},"updatedAt":{"format":"date-time","type":"string","description":"Timestamp when the policy was last modified"},"name":{"type":"string","description":"Human-readable name for the policy"},"action":{"type":"boolean","description":"Whether this policy allows (true) or denies (false) access"},"order":{"type":"number","description":"Priority order for policy evaluation (lower numbers are evaluated first)"},"isDefault":{"type":"boolean","description":"Whether this is a default policy that applies to all entities"},"type":{"enum":["PRIVATE","SAAS","INTERNET","SITETOSITE"],"type":"string","description":"Type of resources this policy applies to"},"mode":{"enum":["LOCAL","RESTRICTED","INTERNET_ACCESS_POINT"],"type":"string","description":"Access mode for this policy"},"allGroups":{"type":"object","default":false,"description":"Whether this policy applies to all groups"},"allUsers":{"type":"object","default":false,"description":"Whether this policy applies to all users"},"allDevices":{"type":"object","default":false,"description":"Whether this policy applies to all devices"},"allResources":{"type":"object","default":false,"description":"Whether this policy applies to all resources"},"groups":{"type":"array","items":{"$ref":"#/components/schemas/PolicyGroupDto"},"description":"Specific groups this policy applies to"},"users":{"type":"array","items":{"$ref":"#/components/schemas/PolicyUserDto"},"description":"Specific users this policy applies to"},"devices":{"type":"array","items":{"$ref":"#/components/schemas/PolicyDeviceDto"},"description":"Specific devices this policy applies to"},"resources":{"type":"array","items":{"$ref":"#/components/schemas/PolicyResourceDto"},"description":"Specific resources this policy applies to"},"gateways":{"type":"array","items":{"$ref":"#/components/schemas/GatewayDto"},"description":"Gateways that can be used to access the resources"},"sourceIps":{"type":"array","items":{"type":"string"},"description":"Source IP addresses or ranges this policy applies to"},"rule":{"$ref":"#/components/schemas/AdmissionRuleDto","description":"Additional admission rules and conditions for this policy"},"description":{"type":"string","description":"Detailed description of the policy's purpose and scope"}},"required":["id","createdAt","updatedAt","name","action","order","isDefault","type","allGroups","allUsers","allDevices","allResources","rule"]},"UpdatePolicyDto":{"type":"object","properties":{"groups":{"type":"array","items":{"type":"string"}},"users":{"type":"array","items":{"type":"string"}},"devices":{"type":"array","items":{"type":"string"}},"gateways":{"type":"array","items":{"type":"string"}},"resources":{"type":"array","items":{"type":"string"}},"rule":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"allGroups":{"type":"object","default":false},"allUsers":{"type":"object","default":false},"allDevices":{"type":"object","default":false},"allResources":{"type":"object","default":false},"sourceIps":{"type":"array","items":{"type":"string"}},"mode":{"type":"string","enum":["LOCAL","RESTRICTED","INTERNET_ACCESS_POINT"]},"action":{"type":"boolean"}},"required":["rule","name","allGroups","allUsers","allDevices","allResources","action"]}}}}
```
