# Get content permissions GET https://content-gateway-example.com/v1/files/{id}/permissions Returns all user/group permissions on content. If permission model is 'hierarchy_permission', then `permissions_hierarchy` must be provided in the response. Reference: https://docs.moveworks.com/api-reference/content-gateway/get-content-permissions ## OpenAPI Specification ```yaml openapi: 3.1.1 info: title: Get content permissions version: endpoint_.getContentPermissions paths: /files/{id}/permissions: get: operationId: get-content-permissions summary: Get content permissions description: >- Returns all user/group permissions on content. If permission model is 'hierarchy_permission', then `permissions_hierarchy` must be provided in the response. tags: - [] parameters: - name: id in: path required: true schema: type: string - name: $top in: query description: Number of items to return per page (default pagination) required: false schema: type: integer - name: $skip in: query description: Number of items to skip (default pagination offset) required: false schema: type: integer - name: $skiptoken in: query description: >- Used when the query parameters can be memoized into an encoded string containing filtering and pagination parameters. If the endpoint supports memoized paging, the first call can use $top and $skip, while @odata.nextLink will return with $skiptoken. If memoized querying is not supported, $top and $skip should be sufficient. required: false schema: type: string - name: $filter in: query required: false schema: type: string - name: $select in: query required: false schema: type: string - name: $orderby in: query required: false schema: type: string responses: '200': description: Content permission response content: application/json: schema: $ref: '#/components/schemas/PermissionCollection' '400': description: Bad Request - The request was invalid or cannot be served. content: {} '401': description: Unauthorized - The request requires user authentication. content: {} '403': description: >- Forbidden - The server understood the request but refuses to authorize it. content: {} '404': description: Not Found - The requested resource could not be found. content: {} '429': description: Too Many Requests - Rate limit exceeded. content: {} '500': description: >- Internal Server Error - The server encountered an unexpected condition. content: {} '503': description: >- Service Unavailable - The server is currently unable to handle the request. content: {} components: schemas: PermissionCollectionValuePermissionsItemsType: type: string enum: - value: USER - value: GROUP PermissionCollectionValuePermissionsItemsAction: type: string enum: - value: VIEW - value: UPDATE PermissionCollectionValuePermissionsItems: type: object properties: type: $ref: '#/components/schemas/PermissionCollectionValuePermissionsItemsType' description: Type of permission entity. id: type: string description: >- Entity ID (user or group). Wildcard (`*`), used in conjunction with `type` `GROUP`, can be used to denote all Users. action: $ref: '#/components/schemas/PermissionCollectionValuePermissionsItemsAction' description: Action permitted on the content. PermissionCollectionValue: type: object properties: permissions: type: array items: $ref: '#/components/schemas/PermissionCollectionValuePermissionsItems' description: List of permission mappings for users and groups. permissions_hierarchy: type: array items: type: string description: >- Hierarchy chain of entity IDs (required if permission model = hierarchy_permission). last_modified_datetime: type: string description: Timestamp of the last permission update. PermissionCollection: type: object properties: '@odata.context': type: string description: OData metadata context URL. value: $ref: '#/components/schemas/PermissionCollectionValue' '@odata.nextLink': type: string description: URL to retrieve the next page of permission results. ``` ## SDK Code Examples ```python import requests url = "https://content-gateway-example.com/v1/files/id/permissions" response = requests.get(url) print(response.json()) ``` ```javascript const url = 'https://content-gateway-example.com/v1/files/id/permissions'; const options = {method: 'GET'}; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "net/http" "io" ) func main() { url := "https://content-gateway-example.com/v1/files/id/permissions" req, _ := http.NewRequest("GET", url, nil) res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("https://content-gateway-example.com/v1/files/id/permissions") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("https://content-gateway-example.com/v1/files/id/permissions") .asString(); ``` ```php request('GET', 'https://content-gateway-example.com/v1/files/id/permissions'); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://content-gateway-example.com/v1/files/id/permissions"); var request = new RestRequest(Method.GET); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let request = NSMutableURLRequest(url: NSURL(string: "https://content-gateway-example.com/v1/files/id/permissions")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```