> For the complete documentation index, see [llms.txt](https://docs.bbchain.com.br/bbchain-ebs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bbchain.com.br/bbchain-ebs/bbchain-ebs-pt/para-desenvolvedores/api-reference/network-management/users/keycloak-facade-api-controller.md).

# Keycloak Facade Api Controller

## Returns the logged in user

> Returns the information of the logged in user

```json
{"openapi":"3.1.0","info":{"title":"OpenAPI definition","version":"v0"},"servers":[{"url":"https://user-s-bk-api.saas.ebs.bbchain.network","description":"Generated server url"}],"paths":{"/v1/users/role/{email}/{client-name}":{"get":{"tags":["keycloak-facade-api-controller"],"summary":"Returns the logged in user","description":"Returns the information of the logged in user","operationId":"findUserRole","parameters":[{"name":"email","in":"path","required":true,"schema":{"type":"string"}},{"name":"client-name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserClientDTO"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"404":{"description":"Resource does not exists.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"500":{"description":"The message code is an encoded string that must be sent to the support team as a ticket.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}}}}}},"components":{"schemas":{"UserClientDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64","readOnly":true},"clientName":{"type":"string"},"clientType":{"type":"string"},"user":{"$ref":"#/components/schemas/UserWithRoleDTO"},"role":{"$ref":"#/components/schemas/RoleDTO"}}},"UserWithRoleDTO":{"type":"object","properties":{"name":{"type":"string","maxLength":254,"minLength":3,"pattern":"^(?![\\d\\W]+$)[a-zà-üA-ZÀ-Ü0-9]+(\\s[a-zà-üA-ZÀ-Ü0-9]+)*$"},"email":{"type":"string","maxLength":254,"minLength":3,"pattern":"^(?!.*[.@]{2})(?!.*\\.{2})^(?!_+)[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+(?<!\\.)$"},"id":{"type":"integer","format":"int64","readOnly":true},"lastAccess":{"type":"string","format":"date-time"}},"required":["email","name"]},"RoleDTO":{"type":"object","properties":{"role":{"type":"string","enum":["owner","operator","participant"]},"message":{"type":"string","description":"Campo opcional caso o usuário queira enviar uma mensagem customizada para quem ele atribuiu uma role"},"name":{"type":"string"}},"required":["role"]},"Error":{"type":"object","properties":{"message":{"type":"string","description":"Error status summary for the executed command."},"code":{"type":"string","description":"# `network.{field}.invalid` field is non compliant # `auth.invalid` Invalid credentials sent to the server. # `auth.verifyEmail` User did not verified their email. # `auth.mustChangePassword` User must change password.         # `user.emailAlreadyUsed` Email already exists. # `auth.forbidden` Forbidden access # `internal.unexpected` Unexpected error from server ","enum":["auth.invalid","auth.verifyEmail","auth.unauthorized","auth.forbidden","auth.expired","auth.blocked","auth.emailDomainBlocked","auth.mustChangePassword","auth.invalidPhoneVerificationCode","auth.passwordNotValid","auth.unableToUpdatePassword","user.notFound","user.created","user.notCreated","user.emailAlreadyExists","userHasRoleInClient","notaryNotFound","notaryPublishDateTooEarly","notaryOrganizationNameConflict","notaryIsCreating","network.notFound","network.alias.invalid","network.name.invalid","network.domain.invalid","network.organizationLegalName.invalid","network.city.invalid","network.country.invalid","network.nodeDomain.invalid","network.tenant.invalid","networkUserDoesNotHavePermissionOnNode","networkUserDoesNotHaveOperatorPermissionOnNode","networkUserDoesNotHavePermissionOnNotary","networkUserDoesNotHaveOperatorPermissionOnNotary","node.notFound","nodeOrganizationNameConflict","cordappVersionShouldBeDisabled","cordappShouldNotHaveVersions","shouldWaitPendingFlagday","internal.unexpected","field.required","field.invalid","field.size","field.pattern","illegalStatus","badRequest","timeConstraint","reachedMaxNetworks","reachedSubscriptionLimit","userReachedSubscriptionLimit","subscriptionTenantNotFoundBecauseNetworkNotFound","subscriptionNodeNameConflict","featureDisabled","adminActionNotFound","adminActionExists","adminActionNotCreated","adminActionDuplicated","adminCloudProviderNotFound","adminCloudProviderExists","adminCloudProviderNotCreated","adminProtocolNotFound","adminProtocolExists","adminProtocolNotCreated","adminPipelineServiceNotFound","adminPipelineServiceExists","adminPipelineServiceNotCreated","adminTenantNotFound","adminTenantExists","adminTenantNotCreated","adminPipelineNotFound","adminPipelineExists","adminPipelineNotCreated","adminComponentNotFound","adminComponentExists","adminComponentNotCreated","adminTenantSettingsNotFound","adminTenantSettingsExists","adminTenantSettingsNotCreated","adminTenantProtocolNotFound","adminTenantProtocolExists","adminTenantProtocolNotCreated","adminFeatureToggleNotFound","adminFeatureToggleExists","adminUserNotFound","adminNetworkNotFound","adminNetworkExists","adminNodeNotFound","adminNodeExists","adminNotaryNotFound","adminNotaryExists","adminPipelineActionDuplicated","adminAppNotFound","adminAppVersionNotFound","adminAppInstallationNotFound","adminComponentTypeNotFound","adminComponentTypeExists","adminBaseDltNotFound","adminBaseDltExists","adminBaseDltNotCreated","adminIdentityProviderNotFound","adminIdentityProviderExists","adminIdentityProviderNotCreated","adminNodeFeatureNotFound","adminNodeFeatureExists","adminNodeFeatureNotCreated","adminSpecializedModuleNotFound","adminSpecializedModuleExists"]}}}}}}
```

## Create role in user

> Create role in user

```json
{"openapi":"3.1.0","info":{"title":"OpenAPI definition","version":"v0"},"servers":[{"url":"https://user-s-bk-api.saas.ebs.bbchain.network","description":"Generated server url"}],"paths":{"/v1/users/role/{email}/{client-name}":{"post":{"tags":["keycloak-facade-api-controller"],"summary":"Create role in user","description":"Create role in user","operationId":"createUserRole","parameters":[{"name":"email","in":"path","required":true,"schema":{"type":"string"}},{"name":"client-name","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleDTO"}}},"required":true},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleDTO"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"404":{"description":"Resource does not exists.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"500":{"description":"The message code is an encoded string that must be sent to the support team as a ticket.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}}}}}},"components":{"schemas":{"RoleDTO":{"type":"object","properties":{"role":{"type":"string","enum":["owner","operator","participant"]},"message":{"type":"string","description":"Campo opcional caso o usuário queira enviar uma mensagem customizada para quem ele atribuiu uma role"},"name":{"type":"string"}},"required":["role"]},"Error":{"type":"object","properties":{"message":{"type":"string","description":"Error status summary for the executed command."},"code":{"type":"string","description":"# `network.{field}.invalid` field is non compliant # `auth.invalid` Invalid credentials sent to the server. # `auth.verifyEmail` User did not verified their email. # `auth.mustChangePassword` User must change password.         # `user.emailAlreadyUsed` Email already exists. # `auth.forbidden` Forbidden access # `internal.unexpected` Unexpected error from server ","enum":["auth.invalid","auth.verifyEmail","auth.unauthorized","auth.forbidden","auth.expired","auth.blocked","auth.emailDomainBlocked","auth.mustChangePassword","auth.invalidPhoneVerificationCode","auth.passwordNotValid","auth.unableToUpdatePassword","user.notFound","user.created","user.notCreated","user.emailAlreadyExists","userHasRoleInClient","notaryNotFound","notaryPublishDateTooEarly","notaryOrganizationNameConflict","notaryIsCreating","network.notFound","network.alias.invalid","network.name.invalid","network.domain.invalid","network.organizationLegalName.invalid","network.city.invalid","network.country.invalid","network.nodeDomain.invalid","network.tenant.invalid","networkUserDoesNotHavePermissionOnNode","networkUserDoesNotHaveOperatorPermissionOnNode","networkUserDoesNotHavePermissionOnNotary","networkUserDoesNotHaveOperatorPermissionOnNotary","node.notFound","nodeOrganizationNameConflict","cordappVersionShouldBeDisabled","cordappShouldNotHaveVersions","shouldWaitPendingFlagday","internal.unexpected","field.required","field.invalid","field.size","field.pattern","illegalStatus","badRequest","timeConstraint","reachedMaxNetworks","reachedSubscriptionLimit","userReachedSubscriptionLimit","subscriptionTenantNotFoundBecauseNetworkNotFound","subscriptionNodeNameConflict","featureDisabled","adminActionNotFound","adminActionExists","adminActionNotCreated","adminActionDuplicated","adminCloudProviderNotFound","adminCloudProviderExists","adminCloudProviderNotCreated","adminProtocolNotFound","adminProtocolExists","adminProtocolNotCreated","adminPipelineServiceNotFound","adminPipelineServiceExists","adminPipelineServiceNotCreated","adminTenantNotFound","adminTenantExists","adminTenantNotCreated","adminPipelineNotFound","adminPipelineExists","adminPipelineNotCreated","adminComponentNotFound","adminComponentExists","adminComponentNotCreated","adminTenantSettingsNotFound","adminTenantSettingsExists","adminTenantSettingsNotCreated","adminTenantProtocolNotFound","adminTenantProtocolExists","adminTenantProtocolNotCreated","adminFeatureToggleNotFound","adminFeatureToggleExists","adminUserNotFound","adminNetworkNotFound","adminNetworkExists","adminNodeNotFound","adminNodeExists","adminNotaryNotFound","adminNotaryExists","adminPipelineActionDuplicated","adminAppNotFound","adminAppVersionNotFound","adminAppInstallationNotFound","adminComponentTypeNotFound","adminComponentTypeExists","adminBaseDltNotFound","adminBaseDltExists","adminBaseDltNotCreated","adminIdentityProviderNotFound","adminIdentityProviderExists","adminIdentityProviderNotCreated","adminNodeFeatureNotFound","adminNodeFeatureExists","adminNodeFeatureNotCreated","adminSpecializedModuleNotFound","adminSpecializedModuleExists"]}}}}}}
```

## Update the user role

> It will change user's role. The user might lose access to certain services

```json
{"openapi":"3.1.0","info":{"title":"OpenAPI definition","version":"v0"},"servers":[{"url":"https://user-s-bk-api.saas.ebs.bbchain.network","description":"Generated server url"}],"paths":{"/v1/users/role/{email}/{client-name}":{"put":{"tags":["keycloak-facade-api-controller"],"summary":"Update the user role","description":"It will change user's role. The user might lose access to certain services","operationId":"updateUserRole","parameters":[{"name":"email","in":"path","required":true,"schema":{"type":"string"}},{"name":"client-name","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleDTO"}}},"required":true},"responses":{"200":{"description":"Successful request.","content":{}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"404":{"description":"Resource does not exists.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"500":{"description":"The message code is an encoded string that must be sent to the support team as a ticket.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}}}}}},"components":{"schemas":{"RoleDTO":{"type":"object","properties":{"role":{"type":"string","enum":["owner","operator","participant"]},"message":{"type":"string","description":"Campo opcional caso o usuário queira enviar uma mensagem customizada para quem ele atribuiu uma role"},"name":{"type":"string"}},"required":["role"]},"Error":{"type":"object","properties":{"message":{"type":"string","description":"Error status summary for the executed command."},"code":{"type":"string","description":"# `network.{field}.invalid` field is non compliant # `auth.invalid` Invalid credentials sent to the server. # `auth.verifyEmail` User did not verified their email. # `auth.mustChangePassword` User must change password.         # `user.emailAlreadyUsed` Email already exists. # `auth.forbidden` Forbidden access # `internal.unexpected` Unexpected error from server ","enum":["auth.invalid","auth.verifyEmail","auth.unauthorized","auth.forbidden","auth.expired","auth.blocked","auth.emailDomainBlocked","auth.mustChangePassword","auth.invalidPhoneVerificationCode","auth.passwordNotValid","auth.unableToUpdatePassword","user.notFound","user.created","user.notCreated","user.emailAlreadyExists","userHasRoleInClient","notaryNotFound","notaryPublishDateTooEarly","notaryOrganizationNameConflict","notaryIsCreating","network.notFound","network.alias.invalid","network.name.invalid","network.domain.invalid","network.organizationLegalName.invalid","network.city.invalid","network.country.invalid","network.nodeDomain.invalid","network.tenant.invalid","networkUserDoesNotHavePermissionOnNode","networkUserDoesNotHaveOperatorPermissionOnNode","networkUserDoesNotHavePermissionOnNotary","networkUserDoesNotHaveOperatorPermissionOnNotary","node.notFound","nodeOrganizationNameConflict","cordappVersionShouldBeDisabled","cordappShouldNotHaveVersions","shouldWaitPendingFlagday","internal.unexpected","field.required","field.invalid","field.size","field.pattern","illegalStatus","badRequest","timeConstraint","reachedMaxNetworks","reachedSubscriptionLimit","userReachedSubscriptionLimit","subscriptionTenantNotFoundBecauseNetworkNotFound","subscriptionNodeNameConflict","featureDisabled","adminActionNotFound","adminActionExists","adminActionNotCreated","adminActionDuplicated","adminCloudProviderNotFound","adminCloudProviderExists","adminCloudProviderNotCreated","adminProtocolNotFound","adminProtocolExists","adminProtocolNotCreated","adminPipelineServiceNotFound","adminPipelineServiceExists","adminPipelineServiceNotCreated","adminTenantNotFound","adminTenantExists","adminTenantNotCreated","adminPipelineNotFound","adminPipelineExists","adminPipelineNotCreated","adminComponentNotFound","adminComponentExists","adminComponentNotCreated","adminTenantSettingsNotFound","adminTenantSettingsExists","adminTenantSettingsNotCreated","adminTenantProtocolNotFound","adminTenantProtocolExists","adminTenantProtocolNotCreated","adminFeatureToggleNotFound","adminFeatureToggleExists","adminUserNotFound","adminNetworkNotFound","adminNetworkExists","adminNodeNotFound","adminNodeExists","adminNotaryNotFound","adminNotaryExists","adminPipelineActionDuplicated","adminAppNotFound","adminAppVersionNotFound","adminAppInstallationNotFound","adminComponentTypeNotFound","adminComponentTypeExists","adminBaseDltNotFound","adminBaseDltExists","adminBaseDltNotCreated","adminIdentityProviderNotFound","adminIdentityProviderExists","adminIdentityProviderNotCreated","adminNodeFeatureNotFound","adminNodeFeatureExists","adminNodeFeatureNotCreated","adminSpecializedModuleNotFound","adminSpecializedModuleExists"]}}}}}}
```

## Returns list of user listed by client-name

> Returns list of user listed by client-name (client-name "customerId-tenantId-networkId-network")

```json
{"openapi":"3.1.0","info":{"title":"OpenAPI definition","version":"v0"},"servers":[{"url":"https://user-s-bk-api.saas.ebs.bbchain.network","description":"Generated server url"}],"paths":{"/v1/users/{client-name}":{"get":{"tags":["keycloak-facade-api-controller"],"summary":"Returns list of user listed by client-name","description":"Returns list of user listed by client-name (client-name \"customerId-tenantId-networkId-network\")","operationId":"findAllUserInClient","parameters":[{"name":"client-name","in":"path","required":true,"schema":{"type":"string"}},{"name":"userName","in":"query","required":false,"schema":{"type":"string"}},{"name":"roleName","in":"query","description":"Role value","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"orderBy","in":"query","required":false,"schema":{}},{"name":"order","in":"query","required":false,"schema":{"enum":["ASC","DESC"]}},{"name":"page","in":"query","required":false,"schema":{}},{"name":"pageSize","in":"query","required":false,"schema":{}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserClientPageDTO"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"404":{"description":"Resource does not exists.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"500":{"description":"The message code is an encoded string that must be sent to the support team as a ticket.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}}}}}},"components":{"schemas":{"UserClientPageDTO":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/UserClientDTO"}},"metadata":{"$ref":"#/components/schemas/PageMetadata"}}},"UserClientDTO":{"type":"object","properties":{"id":{"type":"integer","format":"int64","readOnly":true},"clientName":{"type":"string"},"clientType":{"type":"string"},"user":{"$ref":"#/components/schemas/UserWithRoleDTO"},"role":{"$ref":"#/components/schemas/RoleDTO"}}},"UserWithRoleDTO":{"type":"object","properties":{"name":{"type":"string","maxLength":254,"minLength":3,"pattern":"^(?![\\d\\W]+$)[a-zà-üA-ZÀ-Ü0-9]+(\\s[a-zà-üA-ZÀ-Ü0-9]+)*$"},"email":{"type":"string","maxLength":254,"minLength":3,"pattern":"^(?!.*[.@]{2})(?!.*\\.{2})^(?!_+)[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+(?<!\\.)$"},"id":{"type":"integer","format":"int64","readOnly":true},"lastAccess":{"type":"string","format":"date-time"}},"required":["email","name"]},"RoleDTO":{"type":"object","properties":{"role":{"type":"string","enum":["owner","operator","participant"]},"message":{"type":"string","description":"Campo opcional caso o usuário queira enviar uma mensagem customizada para quem ele atribuiu uma role"},"name":{"type":"string"}},"required":["role"]},"PageMetadata":{"type":"object","properties":{"page":{"type":"integer","format":"int32"},"pageSize":{"type":"integer","format":"int32"},"totalItems":{"type":"integer","format":"int32"},"totalPages":{"type":"integer","format":"int32"}}},"Error":{"type":"object","properties":{"message":{"type":"string","description":"Error status summary for the executed command."},"code":{"type":"string","description":"# `network.{field}.invalid` field is non compliant # `auth.invalid` Invalid credentials sent to the server. # `auth.verifyEmail` User did not verified their email. # `auth.mustChangePassword` User must change password.         # `user.emailAlreadyUsed` Email already exists. # `auth.forbidden` Forbidden access # `internal.unexpected` Unexpected error from server ","enum":["auth.invalid","auth.verifyEmail","auth.unauthorized","auth.forbidden","auth.expired","auth.blocked","auth.emailDomainBlocked","auth.mustChangePassword","auth.invalidPhoneVerificationCode","auth.passwordNotValid","auth.unableToUpdatePassword","user.notFound","user.created","user.notCreated","user.emailAlreadyExists","userHasRoleInClient","notaryNotFound","notaryPublishDateTooEarly","notaryOrganizationNameConflict","notaryIsCreating","network.notFound","network.alias.invalid","network.name.invalid","network.domain.invalid","network.organizationLegalName.invalid","network.city.invalid","network.country.invalid","network.nodeDomain.invalid","network.tenant.invalid","networkUserDoesNotHavePermissionOnNode","networkUserDoesNotHaveOperatorPermissionOnNode","networkUserDoesNotHavePermissionOnNotary","networkUserDoesNotHaveOperatorPermissionOnNotary","node.notFound","nodeOrganizationNameConflict","cordappVersionShouldBeDisabled","cordappShouldNotHaveVersions","shouldWaitPendingFlagday","internal.unexpected","field.required","field.invalid","field.size","field.pattern","illegalStatus","badRequest","timeConstraint","reachedMaxNetworks","reachedSubscriptionLimit","userReachedSubscriptionLimit","subscriptionTenantNotFoundBecauseNetworkNotFound","subscriptionNodeNameConflict","featureDisabled","adminActionNotFound","adminActionExists","adminActionNotCreated","adminActionDuplicated","adminCloudProviderNotFound","adminCloudProviderExists","adminCloudProviderNotCreated","adminProtocolNotFound","adminProtocolExists","adminProtocolNotCreated","adminPipelineServiceNotFound","adminPipelineServiceExists","adminPipelineServiceNotCreated","adminTenantNotFound","adminTenantExists","adminTenantNotCreated","adminPipelineNotFound","adminPipelineExists","adminPipelineNotCreated","adminComponentNotFound","adminComponentExists","adminComponentNotCreated","adminTenantSettingsNotFound","adminTenantSettingsExists","adminTenantSettingsNotCreated","adminTenantProtocolNotFound","adminTenantProtocolExists","adminTenantProtocolNotCreated","adminFeatureToggleNotFound","adminFeatureToggleExists","adminUserNotFound","adminNetworkNotFound","adminNetworkExists","adminNodeNotFound","adminNodeExists","adminNotaryNotFound","adminNotaryExists","adminPipelineActionDuplicated","adminAppNotFound","adminAppVersionNotFound","adminAppInstallationNotFound","adminComponentTypeNotFound","adminComponentTypeExists","adminBaseDltNotFound","adminBaseDltExists","adminBaseDltNotCreated","adminIdentityProviderNotFound","adminIdentityProviderExists","adminIdentityProviderNotCreated","adminNodeFeatureNotFound","adminNodeFeatureExists","adminNodeFeatureNotCreated","adminSpecializedModuleNotFound","adminSpecializedModuleExists"]}}}}}}
```

## Returns list of roles

> Returns list of roles

```json
{"openapi":"3.1.0","info":{"title":"OpenAPI definition","version":"v0"},"servers":[{"url":"https://user-s-bk-api.saas.ebs.bbchain.network","description":"Generated server url"}],"paths":{"/v1/client/{client-name}/role":{"get":{"tags":["keycloak-facade-api-controller"],"summary":"Returns list of roles","description":"Returns list of roles","operationId":"findAllRolesInClient","parameters":[{"name":"client-name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RoleDTO"}}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"404":{"description":"Resource does not exists.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"500":{"description":"The message code is an encoded string that must be sent to the support team as a ticket.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}}}}}},"components":{"schemas":{"RoleDTO":{"type":"object","properties":{"role":{"type":"string","enum":["owner","operator","participant"]},"message":{"type":"string","description":"Campo opcional caso o usuário queira enviar uma mensagem customizada para quem ele atribuiu uma role"},"name":{"type":"string"}},"required":["role"]},"Error":{"type":"object","properties":{"message":{"type":"string","description":"Error status summary for the executed command."},"code":{"type":"string","description":"# `network.{field}.invalid` field is non compliant # `auth.invalid` Invalid credentials sent to the server. # `auth.verifyEmail` User did not verified their email. # `auth.mustChangePassword` User must change password.         # `user.emailAlreadyUsed` Email already exists. # `auth.forbidden` Forbidden access # `internal.unexpected` Unexpected error from server ","enum":["auth.invalid","auth.verifyEmail","auth.unauthorized","auth.forbidden","auth.expired","auth.blocked","auth.emailDomainBlocked","auth.mustChangePassword","auth.invalidPhoneVerificationCode","auth.passwordNotValid","auth.unableToUpdatePassword","user.notFound","user.created","user.notCreated","user.emailAlreadyExists","userHasRoleInClient","notaryNotFound","notaryPublishDateTooEarly","notaryOrganizationNameConflict","notaryIsCreating","network.notFound","network.alias.invalid","network.name.invalid","network.domain.invalid","network.organizationLegalName.invalid","network.city.invalid","network.country.invalid","network.nodeDomain.invalid","network.tenant.invalid","networkUserDoesNotHavePermissionOnNode","networkUserDoesNotHaveOperatorPermissionOnNode","networkUserDoesNotHavePermissionOnNotary","networkUserDoesNotHaveOperatorPermissionOnNotary","node.notFound","nodeOrganizationNameConflict","cordappVersionShouldBeDisabled","cordappShouldNotHaveVersions","shouldWaitPendingFlagday","internal.unexpected","field.required","field.invalid","field.size","field.pattern","illegalStatus","badRequest","timeConstraint","reachedMaxNetworks","reachedSubscriptionLimit","userReachedSubscriptionLimit","subscriptionTenantNotFoundBecauseNetworkNotFound","subscriptionNodeNameConflict","featureDisabled","adminActionNotFound","adminActionExists","adminActionNotCreated","adminActionDuplicated","adminCloudProviderNotFound","adminCloudProviderExists","adminCloudProviderNotCreated","adminProtocolNotFound","adminProtocolExists","adminProtocolNotCreated","adminPipelineServiceNotFound","adminPipelineServiceExists","adminPipelineServiceNotCreated","adminTenantNotFound","adminTenantExists","adminTenantNotCreated","adminPipelineNotFound","adminPipelineExists","adminPipelineNotCreated","adminComponentNotFound","adminComponentExists","adminComponentNotCreated","adminTenantSettingsNotFound","adminTenantSettingsExists","adminTenantSettingsNotCreated","adminTenantProtocolNotFound","adminTenantProtocolExists","adminTenantProtocolNotCreated","adminFeatureToggleNotFound","adminFeatureToggleExists","adminUserNotFound","adminNetworkNotFound","adminNetworkExists","adminNodeNotFound","adminNodeExists","adminNotaryNotFound","adminNotaryExists","adminPipelineActionDuplicated","adminAppNotFound","adminAppVersionNotFound","adminAppInstallationNotFound","adminComponentTypeNotFound","adminComponentTypeExists","adminBaseDltNotFound","adminBaseDltExists","adminBaseDltNotCreated","adminIdentityProviderNotFound","adminIdentityProviderExists","adminIdentityProviderNotCreated","adminNodeFeatureNotFound","adminNodeFeatureExists","adminNodeFeatureNotCreated","adminSpecializedModuleNotFound","adminSpecializedModuleExists"]}}}}}}
```

## Delete a specific role

> Delete a role user.

```json
{"openapi":"3.1.0","info":{"title":"OpenAPI definition","version":"v0"},"servers":[{"url":"https://user-s-bk-api.saas.ebs.bbchain.network","description":"Generated server url"}],"paths":{"/v1/users/role/{email}/{client-name}/{role-name}":{"delete":{"tags":["keycloak-facade-api-controller"],"summary":"Delete a specific role","description":"Delete a role user.","operationId":"deleteUserRole","parameters":[{"name":"email","in":"path","required":true,"schema":{"type":"string"}},{"name":"client-name","in":"path","required":true,"schema":{"type":"string"}},{"name":"role-name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"OK","content":{}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"404":{"description":"Resource does not exists.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}},"500":{"description":"The message code is an encoded string that must be sent to the support team as a ticket.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}}}}}},"components":{"schemas":{"Error":{"type":"object","properties":{"message":{"type":"string","description":"Error status summary for the executed command."},"code":{"type":"string","description":"# `network.{field}.invalid` field is non compliant # `auth.invalid` Invalid credentials sent to the server. # `auth.verifyEmail` User did not verified their email. # `auth.mustChangePassword` User must change password.         # `user.emailAlreadyUsed` Email already exists. # `auth.forbidden` Forbidden access # `internal.unexpected` Unexpected error from server ","enum":["auth.invalid","auth.verifyEmail","auth.unauthorized","auth.forbidden","auth.expired","auth.blocked","auth.emailDomainBlocked","auth.mustChangePassword","auth.invalidPhoneVerificationCode","auth.passwordNotValid","auth.unableToUpdatePassword","user.notFound","user.created","user.notCreated","user.emailAlreadyExists","userHasRoleInClient","notaryNotFound","notaryPublishDateTooEarly","notaryOrganizationNameConflict","notaryIsCreating","network.notFound","network.alias.invalid","network.name.invalid","network.domain.invalid","network.organizationLegalName.invalid","network.city.invalid","network.country.invalid","network.nodeDomain.invalid","network.tenant.invalid","networkUserDoesNotHavePermissionOnNode","networkUserDoesNotHaveOperatorPermissionOnNode","networkUserDoesNotHavePermissionOnNotary","networkUserDoesNotHaveOperatorPermissionOnNotary","node.notFound","nodeOrganizationNameConflict","cordappVersionShouldBeDisabled","cordappShouldNotHaveVersions","shouldWaitPendingFlagday","internal.unexpected","field.required","field.invalid","field.size","field.pattern","illegalStatus","badRequest","timeConstraint","reachedMaxNetworks","reachedSubscriptionLimit","userReachedSubscriptionLimit","subscriptionTenantNotFoundBecauseNetworkNotFound","subscriptionNodeNameConflict","featureDisabled","adminActionNotFound","adminActionExists","adminActionNotCreated","adminActionDuplicated","adminCloudProviderNotFound","adminCloudProviderExists","adminCloudProviderNotCreated","adminProtocolNotFound","adminProtocolExists","adminProtocolNotCreated","adminPipelineServiceNotFound","adminPipelineServiceExists","adminPipelineServiceNotCreated","adminTenantNotFound","adminTenantExists","adminTenantNotCreated","adminPipelineNotFound","adminPipelineExists","adminPipelineNotCreated","adminComponentNotFound","adminComponentExists","adminComponentNotCreated","adminTenantSettingsNotFound","adminTenantSettingsExists","adminTenantSettingsNotCreated","adminTenantProtocolNotFound","adminTenantProtocolExists","adminTenantProtocolNotCreated","adminFeatureToggleNotFound","adminFeatureToggleExists","adminUserNotFound","adminNetworkNotFound","adminNetworkExists","adminNodeNotFound","adminNodeExists","adminNotaryNotFound","adminNotaryExists","adminPipelineActionDuplicated","adminAppNotFound","adminAppVersionNotFound","adminAppInstallationNotFound","adminComponentTypeNotFound","adminComponentTypeExists","adminBaseDltNotFound","adminBaseDltExists","adminBaseDltNotCreated","adminIdentityProviderNotFound","adminIdentityProviderExists","adminIdentityProviderNotCreated","adminNodeFeatureNotFound","adminNodeFeatureExists","adminNodeFeatureNotCreated","adminSpecializedModuleNotFound","adminSpecializedModuleExists"]}}}}}}
```
