RoleInsights
All URIs are relative to https://sailpoint.api.identitynow.com/v2024
Method | HTTP request | Description |
---|---|---|
New-V2024RoleInsightRequests | POST /role-insights/requests | Generate insights for roles |
Invoke-V2024DownloadRoleInsightsEntitlementsChanges | GET /role-insights/{insightId}/entitlement-changes/download | Download entitlement insights for a role |
Get-V2024EntitlementChangesIdentities | GET /role-insights/{insightId}/entitlement-changes/{entitlementId}/identities | Get identities for a suggested entitlement (for a role) |
Get-V2024RoleInsight | GET /role-insights/{insightId} | Get a single role insight |
Get-V2024RoleInsights | GET /role-insights | Get role insights |
Get-V2024RoleInsightsCurrentEntitlements | GET /role-insights/{insightId}/current-entitlements | Get current entitlement for a role |
Get-V2024RoleInsightsEntitlementsChanges | GET /role-insights/{insightId}/entitlement-changes | Get entitlement insights for a role |
Get-V2024RoleInsightsRequests | GET /role-insights/requests/{id} | Returns metadata from prior request. |
Get-V2024RoleInsightsSummary | GET /role-insights/summary | Get role insights summary information |
create-role-insight-requests
This endpoint has been deprecated and may be replaced or removed in future versions of the API.
This API is currently in an experimental state. The API is subject to change based on feedback and further testing. You must include the X-SailPoint-Experimental header and set it to true
to use this endpoint.
Submits a create role insights request to the role insights application. At this time there are no parameters. All business roles will be processed for the customer.
Parameters
Param Type | Name | Data Type | Required | Description |
---|---|---|---|---|
XSailPointExperimental | String | True (default to "true") | Use this header to enable this experimental API. |
Return type
Responses
Code | Description | Data Type |
---|---|---|
201 | Submitted a role insights generation request | RoleInsightsResponse |
400 | Client Error - Returned if the request body is invalid. | ErrorResponseDto |
401 | Unauthorized - Returned if there is no authorization header, or if the JWT token is expired. | ListAccessProfiles401Response |
403 | Forbidden - Returned if the user you are running as, doesn't have access to this end-point. | ErrorResponseDto |
429 | Too Many Requests - Returned in response to too many requests in a given period of time - rate limited. The Retry-After header in the response includes how long to wait before trying again. | ListAccessProfiles429Response |
500 | Internal Server Error - Returned if there is an unexpected error. | ErrorResponseDto |
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
Example
$XSailPointExperimental = "true" # String | Use this header to enable this experimental API. (default to "true")
# Generate insights for roles
try {
New-V2024RoleInsightRequests -XSailPointExperimental $XSailPointExperimental
# Below is a request that includes all optional parameters
# New-V2024RoleInsightRequests -XSailPointExperimental $XSailPointExperimental
} catch {
Write-Host $_.Exception.Response.StatusCode.value__ "Exception occurred when calling New-V2024RoleInsightRequests"
Write-Host $_.ErrorDetails
}
download-role-insights-entitlements-changes
This API is currently in an experimental state. The API is subject to change based on feedback and further testing. You must include the X-SailPoint-Experimental header and set it to true
to use this endpoint.
This endpoint returns the entitlement insights for a role.
Parameters
Param Type | Name | Data Type | Required | Description |
---|---|---|---|---|
Path | InsightId | String | True | The role insight id |
XSailPointExperimental | String | True (default to "true") | Use this header to enable this experimental API. | |
Query | Sorters | String | (optional) | Sort results using the standard syntax described in V3 API Standard Collection Parameters Sorting is supported for the following fields: identitiesWithAccess The default sort is identitiesWithAccess in descending order. |
Query | Filters | String | (optional) | Filter results using the standard syntax described in V3 API Standard Collection Parameters Filtering is supported for the following fields and operators: name: sw description: sw |
Return type
String
Responses
Code | Description | Data Type |
---|---|---|
200 | Succeeded. Returns a csv file containing a list of entitlements to be added for a role. | String |
400 | Client Error - Returned if the request body is invalid. | ErrorResponseDto |
401 | Unauthorized - Returned if there is no authorization header, or if the JWT token is expired. | ListAccessProfiles401Response |
403 | Forbidden - Returned if the user you are running as, doesn't have access to this end-point. | ErrorResponseDto |
500 | Internal Server Error - Returned if there is an unexpected error. | ErrorResponseDto |
HTTP request headers
- Content-Type: Not defined
- Accept: text/csv, application/json
Example
$InsightId = "8c190e67-87aa-4ed9-a90b-d9d5344523fb" # String | The role insight id
$XSailPointExperimental = "true" # String | Use this header to enable this experimental API. (default to "true")
$Sorters = "identitiesWithAccess" # String | Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **identitiesWithAccess** The default sort is **identitiesWithAccess** in descending order. (optional)
$Filters = 'name sw "r"' # String | Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* **description**: *sw* (optional)
# Download entitlement insights for a role
try {
Invoke-V2024DownloadRoleInsightsEntitlementsChanges -InsightId $InsightId -XSailPointExperimental $XSailPointExperimental
# Below is a request that includes all optional parameters
# Invoke-V2024DownloadRoleInsightsEntitlementsChanges -InsightId $InsightId -XSailPointExperimental $XSailPointExperimental -Sorters $Sorters -Filters $Filters
} catch {
Write-Host $_.Exception.Response.StatusCode.value__ "Exception occurred when calling Invoke-V2024DownloadRoleInsightsEntitlementsChanges"
Write-Host $_.ErrorDetails
}
get-entitlement-changes-identities
This API is currently in an experimental state. The API is subject to change based on feedback and further testing. You must include the X-SailPoint-Experimental header and set it to true
to use this endpoint.
Role insights suggests entitlements to be added for a role. This endpoint returns a list of identities in the role, with or without the entitlements, for a suggested entitlement so that the user can see which identities would be affected if the suggested entitlement were to be added to the role.
Parameters
Param Type | Name | Data Type | Required | Description |
---|---|---|---|---|
Path | InsightId | String | True | The role insight id |
Path | EntitlementId | String | True | The entitlement id |
XSailPointExperimental | String | True (default to "true") | Use this header to enable this experimental API. | |
Query | HasEntitlement | Boolean | (optional) (default to $false) | Identity has this entitlement or not |
Query | Offset | Int32 | (optional) (default to 0) | Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information. |
Query | Limit | Int32 | (optional) (default to 250) | Max number of results to return. See V3 API Standard Collection Parameters for more information. |
Query | Count | Boolean | (optional) (default to $false) | If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored. Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used. See V3 API Standard Collection Parameters for more information. |
Query | Sorters | String | (optional) | Sort results using the standard syntax described in V3 API Standard Collection Parameters Sorting is supported for the following fields: name |
Query | Filters | String | (optional) | Filter results using the standard syntax described in V3 API Standard Collection Parameters Filtering is supported for the following fields and operators: name: sw |
Return type
Responses
Code | Description | Data Type |
---|---|---|
200 | Succeeded. Returns a list of identities with or without the entitlement. | RoleInsightsIdentities[] |
400 | Client Error - Returned if the request body is invalid. | ErrorResponseDto |
401 | Unauthorized - Returned if there is no authorization header, or if the JWT token is expired. | ListAccessProfiles401Response |
403 | Forbidden - Returned if the user you are running as, doesn't have access to this end-point. | ErrorResponseDto |
500 | Internal Server Error - Returned if there is an unexpected error. | ErrorResponseDto |
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
Example
$InsightId = "8c190e67-87aa-4ed9-a90b-d9d5344523fb" # String | The role insight id
$EntitlementId = "8c190e67-87aa-4ed9-a90b-d9d5344523fb" # String | The entitlement id
$XSailPointExperimental = "true" # String | Use this header to enable this experimental API. (default to "true")
$HasEntitlement = $true # Boolean | Identity has this entitlement or not (optional) (default to $false)
$Offset = 0 # Int32 | Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. (optional) (default to 0)
$Limit = 250 # Int32 | Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. (optional) (default to 250)
$Count = $true # Boolean | If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. (optional) (default to $false)
$Sorters = "name" # String | Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **name** (optional)
$Filters = 'name sw "Jan"' # String | Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* (optional)
# Get identities for a suggested entitlement (for a role)
try {
Get-V2024EntitlementChangesIdentities -InsightId $InsightId -EntitlementId $EntitlementId -XSailPointExperimental $XSailPointExperimental
# Below is a request that includes all optional parameters
# Get-V2024EntitlementChangesIdentities -InsightId $InsightId -EntitlementId $EntitlementId -XSailPointExperimental $XSailPointExperimental -HasEntitlement $HasEntitlement -Offset $Offset -Limit $Limit -Count $Count -Sorters $Sorters -Filters $Filters
} catch {
Write-Host $_.Exception.Response.StatusCode.value__ "Exception occurred when calling Get-V2024EntitlementChangesIdentities"
Write-Host $_.ErrorDetails
}
get-role-insight
This API is currently in an experimental state. The API is subject to change based on feedback and further testing. You must include the X-SailPoint-Experimental header and set it to true
to use this endpoint.
This endpoint gets role insights information for a role.
Parameters
Param Type | Name | Data Type | Required | Description |
---|---|---|---|---|
Path | InsightId | String | True | The role insight id |
XSailPointExperimental | String | True (default to "true") | Use this header to enable this experimental API. |
Return type
Responses
Code | Description | Data Type |
---|---|---|
200 | Succeeded. Returns information about insights for a single role. | RoleInsight |
400 | Client Error - Returned if the request body is invalid. | ErrorResponseDto |
401 | Unauthorized - Returned if there is no authorization header, or if the JWT token is expired. | ListAccessProfiles401Response |
403 | Forbidden - Returned if the user you are running as, doesn't have access to this end-point. | ErrorResponseDto |
500 | Internal Server Error - Returned if there is an unexpected error. | ErrorResponseDto |
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
Example
$InsightId = "8c190e67-87aa-4ed9-a90b-d9d5344523fb" # String | The role insight id
$XSailPointExperimental = "true" # String | Use this header to enable this experimental API. (default to "true")
# Get a single role insight
try {
Get-V2024RoleInsight -InsightId $InsightId -XSailPointExperimental $XSailPointExperimental
# Below is a request that includes all optional parameters
# Get-V2024RoleInsight -InsightId $InsightId -XSailPointExperimental $XSailPointExperimental
} catch {
Write-Host $_.Exception.Response.StatusCode.value__ "Exception occurred when calling Get-V2024RoleInsight"
Write-Host $_.ErrorDetails
}
get-role-insights
This API is currently in an experimental state. The API is subject to change based on feedback and further testing. You must include the X-SailPoint-Experimental header and set it to true
to use this endpoint.
This method returns detailed role insights for each role.
Parameters
Param Type | Name | Data Type | Required | Description |
---|---|---|---|---|
XSailPointExperimental | String | True (default to "true") | Use this header to enable this experimental API. | |
Query | Offset | Int32 | (optional) (default to 0) | Offset into the full result set. Usually specified with limit to paginate through the results. See V3 API Standard Collection Parameters for more information. |
Query | Limit | Int32 | (optional) (default to 250) | Max number of results to return. See V3 API Standard Collection Parameters for more information. |
Query | Count | Boolean | (optional) (default to $false) | If true it will populate the X-Total-Count response header with the number of results that would be returned if limit and offset were ignored. Since requesting a total count can have a performance impact, it is recommended not to send count=true if that value will not be used. See V3 API Standard Collection Parameters for more information. |
Query | Sorters | String | (optional) | Sort results using the standard syntax described in V3 API Standard Collection Parameters Sorting is supported for the following fields: numberOfUpdates, identitiesWithAccess, totalNumberOfIdentities |
Query | Filters | String | (optional) | Filter results using the standard syntax described in V3 API Standard Collection Parameters Filtering is supported for the following fields and operators: name: sw ownerName: sw description: sw |
Return type
Responses
Code | Description | Data Type |
---|---|---|
200 | Succeeded. Returns a list of roles with information about insights for each role. | RoleInsight[] |
400 | Client Error - Returned if the request body is invalid. | ErrorResponseDto |
401 | Unauthorized - Returned if there is no authorization header, or if the JWT token is expired. | ListAccessProfiles401Response |
403 | Forbidden - Returned if the user you are running as, doesn't have access to this end-point. | ErrorResponseDto |
500 | Internal Server Error - Returned if there is an unexpected error. | ErrorResponseDto |
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
Example
$XSailPointExperimental = "true" # String | Use this header to enable this experimental API. (default to "true")
$Offset = 0 # Int32 | Offset into the full result set. Usually specified with *limit* to paginate through the results. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. (optional) (default to 0)
$Limit = 250 # Int32 | Max number of results to return. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. (optional) (default to 250)
$Count = $true # Boolean | If *true* it will populate the *X-Total-Count* response header with the number of results that would be returned if *limit* and *offset* were ignored. Since requesting a total count can have a performance impact, it is recommended not to send **count=true** if that value will not be used. See [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters) for more information. (optional) (default to $false)
$Sorters = "numberOfUpdates" # String | Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **numberOfUpdates, identitiesWithAccess, totalNumberOfIdentities** (optional)
$Filters = 'name sw "John"' # String | Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* **ownerName**: *sw* **description**: *sw* (optional)
# Get role insights
try {
Get-V2024RoleInsights -XSailPointExperimental $XSailPointExperimental
# Below is a request that includes all optional parameters
# Get-V2024RoleInsights -XSailPointExperimental $XSailPointExperimental -Offset $Offset -Limit $Limit -Count $Count -Sorters $Sorters -Filters $Filters
} catch {
Write-Host $_.Exception.Response.StatusCode.value__ "Exception occurred when calling Get-V2024RoleInsights"
Write-Host $_.ErrorDetails
}
get-role-insights-current-entitlements
This API is currently in an experimental state. The API is subject to change based on feedback and further testing. You must include the X-SailPoint-Experimental header and set it to true
to use this endpoint.
This endpoint gets the entitlements for a role. The term "current" is to distinguish from the entitlement(s) an insight might recommend adding.
Parameters
Param Type | Name | Data Type | Required | Description |
---|---|---|---|---|
Path | InsightId | String | True | The role insight id |
XSailPointExperimental | String | True (default to "true") | Use this header to enable this experimental API. | |
Query | Filters | String | (optional) | Filter results using the standard syntax described in V3 API Standard Collection Parameters Filtering is supported for the following fields and operators: name: sw description: sw |
Return type
Responses
Code | Description | Data Type |
---|---|---|
200 | Succeeded. Returns a list of current or pre-existing entitlements for a role. | RoleInsightsEntitlement[] |
400 | Client Error - Returned if the request body is invalid. | ErrorResponseDto |
401 | Unauthorized - Returned if there is no authorization header, or if the JWT token is expired. | ListAccessProfiles401Response |
403 | Forbidden - Returned if the user you are running as, doesn't have access to this end-point. | ErrorResponseDto |
500 | Internal Server Error - Returned if there is an unexpected error. | ErrorResponseDto |
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
Example
$InsightId = "8c190e67-87aa-4ed9-a90b-d9d5344523fb" # String | The role insight id
$XSailPointExperimental = "true" # String | Use this header to enable this experimental API. (default to "true")
$Filters = 'name sw "r"' # String | Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* **description**: *sw* (optional)
# Get current entitlement for a role
try {
Get-V2024RoleInsightsCurrentEntitlements -InsightId $InsightId -XSailPointExperimental $XSailPointExperimental
# Below is a request that includes all optional parameters
# Get-V2024RoleInsightsCurrentEntitlements -InsightId $InsightId -XSailPointExperimental $XSailPointExperimental -Filters $Filters
} catch {
Write-Host $_.Exception.Response.StatusCode.value__ "Exception occurred when calling Get-V2024RoleInsightsCurrentEntitlements"
Write-Host $_.ErrorDetails
}
get-role-insights-entitlements-changes
This API is currently in an experimental state. The API is subject to change based on feedback and further testing. You must include the X-SailPoint-Experimental header and set it to true
to use this endpoint.
This endpoint returns entitlement insights for a role.
Parameters
Param Type | Name | Data Type | Required | Description |
---|---|---|---|---|
Path | InsightId | String | True | The role insight id |
XSailPointExperimental | String | True (default to "true") | Use this header to enable this experimental API. | |
Query | Sorters | String | (optional) | Sort results using the standard syntax described in V3 API Standard Collection Parameters Sorting is supported for the following fields: identitiesWithAccess, name |
Query | Filters | String | (optional) | Filter results using the standard syntax described in V3 API Standard Collection Parameters Filtering is supported for the following fields and operators: name: sw description: sw |
Return type
RoleInsightsEntitlementChanges[]
Responses
Code | Description | Data Type |
---|---|---|
200 | Succeeded. Returns a list of entitlements to be added for a role. | RoleInsightsEntitlementChanges[] |
400 | Client Error - Returned if the request body is invalid. | ErrorResponseDto |
401 | Unauthorized - Returned if there is no authorization header, or if the JWT token is expired. | ListAccessProfiles401Response |
403 | Forbidden - Returned if the user you are running as, doesn't have access to this end-point. | ErrorResponseDto |
500 | Internal Server Error - Returned if there is an unexpected error. | ErrorResponseDto |
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
Example
$InsightId = "8c190e67-87aa-4ed9-a90b-d9d5344523fb" # String | The role insight id
$XSailPointExperimental = "true" # String | Use this header to enable this experimental API. (default to "true")
$Sorters = "MySorters" # String | Sort results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#sorting-results) Sorting is supported for the following fields: **identitiesWithAccess, name** (optional)
$Filters = 'name sw "Admin"' # String | Filter results using the standard syntax described in [V3 API Standard Collection Parameters](https://developer.sailpoint.com/idn/api/standard-collection-parameters#filtering-results) Filtering is supported for the following fields and operators: **name**: *sw* **description**: *sw* (optional)
# Get entitlement insights for a role
try {
Get-V2024RoleInsightsEntitlementsChanges -InsightId $InsightId -XSailPointExperimental $XSailPointExperimental
# Below is a request that includes all optional parameters
# Get-V2024RoleInsightsEntitlementsChanges -InsightId $InsightId -XSailPointExperimental $XSailPointExperimental -Sorters $Sorters -Filters $Filters
} catch {
Write-Host $_.Exception.Response.StatusCode.value__ "Exception occurred when calling Get-V2024RoleInsightsEntitlementsChanges"
Write-Host $_.ErrorDetails
}
get-role-insights-requests
This endpoint has been deprecated and may be replaced or removed in future versions of the API.
This API is currently in an experimental state. The API is subject to change based on feedback and further testing. You must include the X-SailPoint-Experimental header and set it to true
to use this endpoint.
This endpoint returns details of a prior role insights request.
Parameters
Param Type | Name | Data Type | Required | Description |
---|---|---|---|---|
Path | Id | String | True | The role insights request id |
XSailPointExperimental | String | True (default to "true") | Use this header to enable this experimental API. |
Return type
Responses
Code | Description | Data Type |
---|---|---|
200 | Succeeded. Returns details of an earlier role insights request. | RoleInsightsResponse |
400 | Client Error - Returned if the request body is invalid. | ErrorResponseDto |
401 | Unauthorized - Returned if there is no authorization header, or if the JWT token is expired. | ListAccessProfiles401Response |
403 | Forbidden - Returned if the user you are running as, doesn't have access to this end-point. | ErrorResponseDto |
429 | Too Many Requests - Returned in response to too many requests in a given period of time - rate limited. The Retry-After header in the response includes how long to wait before trying again. | ListAccessProfiles429Response |
500 | Internal Server Error - Returned if there is an unexpected error. | ErrorResponseDto |
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
Example
$Id = "8c190e67-87aa-4ed9-a90b-d9d5344523fb" # String | The role insights request id
$XSailPointExperimental = "true" # String | Use this header to enable this experimental API. (default to "true")
# Returns metadata from prior request.
try {
Get-V2024RoleInsightsRequests -Id $Id -XSailPointExperimental $XSailPointExperimental
# Below is a request that includes all optional parameters
# Get-V2024RoleInsightsRequests -Id $Id -XSailPointExperimental $XSailPointExperimental
} catch {
Write-Host $_.Exception.Response.StatusCode.value__ "Exception occurred when calling Get-V2024RoleInsightsRequests"
Write-Host $_.ErrorDetails
}
get-role-insights-summary
This API is currently in an experimental state. The API is subject to change based on feedback and further testing. You must include the X-SailPoint-Experimental header and set it to true
to use this endpoint.
This method returns high level summary information for role insights for a customer.
Parameters
Param Type | Name | Data Type | Required | Description |
---|---|---|---|---|
XSailPointExperimental | String | True (default to "true") | Use this header to enable this experimental API. |
Return type
Responses
Code | Description | Data Type |
---|---|---|
200 | Succeeded. Returns high level counts. | RoleInsightsSummary |
400 | Client Error - Returned if the request body is invalid. | ErrorResponseDto |
401 | Unauthorized - Returned if there is no authorization header, or if the JWT token is expired. | ListAccessProfiles401Response |
403 | Forbidden - Returned if the user you are running as, doesn't have access to this end-point. | ErrorResponseDto |
500 | Internal Server Error - Returned if there is an unexpected error. | ErrorResponseDto |
HTTP request headers
- Content-Type: Not defined
- Accept: application/json
Example
$XSailPointExperimental = "true" # String | Use this header to enable this experimental API. (default to "true")
# Get role insights summary information
try {
Get-V2024RoleInsightsSummary -XSailPointExperimental $XSailPointExperimental
# Below is a request that includes all optional parameters
# Get-V2024RoleInsightsSummary -XSailPointExperimental $XSailPointExperimental
} catch {
Write-Host $_.Exception.Response.StatusCode.value__ "Exception occurred when calling Get-V2024RoleInsightsSummary"
Write-Host $_.ErrorDetails
}