---
metadata:
  - name: generator
    content: Diplodoc Platform v5.44.0
alternate:
  - https://yandex.ru/dev/disk-api/doc/ru/reference/public-settings-change.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/dev/disk-api/doc/ru/llms.txt

# Изменение настроек публичного доступа к ресурсу

Метод изменяет настройки доступа для ранее опубликованного ресурса. При использовании текущей версии API с массивом настроек доступа `accesses[]` позволяет дополнительно задать персональный доступ для уже опубликованных файлов или папок.

{% note warning %}

Изменить настройки доступа к публичному ресурсу можно с OAuth-токеном:
- владельца ресурса;
- пользователя, у которого есть права на редактирование ресурса.

{% endnote %}


Необходимые права доступа для OAuth-приложения:
* `cloud_api:disk.write`

## Формат запроса {#pub-set-chg-request}

Метод: ##PATCH##.

```
https://cloud-api.yandex.net/v1/disk/public/resources/public-settings
 ? [path](*popup-path)=<путь к публикуемому ресурсу>
 & [[allow_address_access](*popup-allow_address_access)=<возможность обрабатывать ответы с массивом параметров, задающих права доступа>]
```

### Описание query-параметров {#query}

path[*](*popup-a)
: Путь к публикуемому ресурсу. Например, `%2Fbar%2Fphoto.png`.

<!-- source: ru/_includes/reference/parameters-warehouse/id-format/path-encoding.md -->
Путь в значении параметра следует кодировать в URL-формате.
<!-- endsource: ru/_includes/reference/parameters-warehouse/id-format/path-encoding.md -->


allow_address_access
: Параметр с типом `boolean`, который обозначает, по какому формату составлен запрос — с настройками персонального доступа или без.

Допустимые значения:

  - `false` (значение по умолчанию) — запрос не содержит массив настроек персонального доступа. Значение используется для обеспечения обратной совместимости: для запросов, сформированных по формату предыдущих версий API, в которых нет элементов массива `accesses[]`, query-параметр `allow_address_access` должен иметь значение `false` либо отсутствовать.
  - `true` — запрос составлен в формате, который предполагает использование настроек персонального доступа. Применяется, если вы используете текущую версию API и отправляете запрос с телом, в котором содержится массив `accesses[]`.

Чтобы отправлять запросы, которые содержат массив настроек доступа `accesses[]`, у вашего сервиса должна быть возможность и на обработку ответов с этим массивом.



\*  Обязательный параметр.

### Заголовки {#header}

```
Authorization: OAuth <token>
Content-Type: application/json
```

### Тело запроса {#body}

В теле запроса передается объект PublicSettings, с помощью которого можно задать настройки доступа для публикуемого ресурса.

```json
{
  "available_until": 1737968946,
  "password": "1234",
  "accesses": [
    {
      "type": "macro",
      "macros": [
        "employees"
      ],
      "org_id": 999,
      "rights": [
        "read_with_password"
      ]
    },
    {
      "type": "user",
      "id": 1130000065996970,
      "rights": [
        "read"
      ]
    },
    {
      "type": "user",
      "id": 1130000065996971,
      "rights": [
        "write"
      ]
    },
    {
      "type": "user",
      "id": 1130000065996972,
      "rights": [
        "write",
        "read"
      ]
    },
    {
      "type": "user",
      "id": 1130000065996973,
      "rights": []
    },
    {
      "type": "group",
      "id": 100,
      "rights": [
        "read"
      ]
    },
    {
      "type": "group",
      "id": 101,
      "rights": [
        "write"
      ]
    },
    {
      "type": "group",
      "id": 102,
      "rights": [
        "write",
        "read"
      ]
    },
    {
      "type": "group",
      "id": 103,
      "rights": [
        "write",
        "read"
       ]
    },
    {
      "type": "department",
      "id": 0,
      "rights": [
        "read"
      ]
    },
    {
      "type": "department",
      "id": 1,
      "rights": [
        "write"
      ]
    },
    {
      "type": "department",
      "id": 2,
      "rights": [
        "write",
        "read"
      ]
    },
    {
      "type": "department",
      "id": 3,
      "rights": []
    }
  ]
}

```

#|
|| **Параметр** | **Тип данных** | **Описание** ||
||`available_until` | integer | Время жизни ссылки на ресурс (в секундах).

По истечении указанного времени ссылка на ресурс перестанет быть действительной, однако ресурс продолжит считаться опубликованным.

{% cut "Как создать новую ссылку на ресурс" %}

Выполните одно из действий:
- снимите ресурс с публикации (см. [описание запроса на закрытие публичного доступа](https://yandex.ru/dev/disk-api/doc/ru/reference/unpublish.md)) и опубликуйте снова с нужными настройками доступа;
- измените настройки доступа (см. [описание запроса на изменение прав доступа](https://yandex.ru/dev/disk-api/doc/ru/reference/unpublish.md)).

{% endcut %}

||
||`password` | string | Пароль для общего доступа к ресурсу по ссылке.

Обязателен, если в `accesses.rights` заданы права `read_with_password` или `read_with_password_without_download`. ||
||`accesses` | array | [Массив параметров](#accesses), которые задают права доступа пользователей к ресурсу. Применяется, если query-параметр `allow_address_access` имеет значение `true`.

Позволяет задать настройки для разных уровней доступа:
- общего — внутри организации или для любых пользователей Яндекс 360 для бизнеса;
- персонального для определенных сотрудников организации;
- персонального для определенных групп;
- персонального для определенных подразделений. ||
|#

**accesses []** {#accesses}

Массив `accesses []` может содержать объекты, описывающие следующие уровни доступа:

- Общий доступ

  #|
  || **Параметр** | **Тип данных** | **Описание** ||
  ||`type`[**](*popup-b) | string | Тип субъекта, для которого задаются параметры доступа. Возможные значения:
  - `macro` — все субъекты уровня общего доступа;
  - `user` — сотрудник организации, для которого настроен персональный доступ;
  - `group` — группа в организации, для которой настроен персональный доступ;
  - `department` — отдел в организации, для которого настроен персональный доступ. ||
  ||`macros` | array of string | Массив, который содержит информацию о том, будет ли общий доступ к ресурсу с указанными правами предоставлен только внутри организации или для любых пользователей. Возможные значения:
  - `employees` — общий доступ к ресурсу только внутри определенной организации;
  - `all` — общий доступ для всех пользователей.

  Тип данных `array` указан для обеспечения обратной совместимости в будущих версиях API. Фактически следует указывать только одно из значений. Если указать оба, в ответе вернется ошибка.

  Поле обязательно, при `"type":"macro"`.||
  ||`org_id` | integer | Идентификатор организации, сотрудникам которой предоставляется общий доступ к ресурсу с правами, заданными в параметре `rights` данного объекта.

  Можно указать идентификатор только той организации, в которой состоит пользователь, от чьего имени отправляется запрос. Если OAuth-токен не принадлежит сотруднику указанной организации, в ответе на запрос придет ошибка.

  Поле обязательно, при `"type":"macro"` и `"macros": "employees"`. В остальных случаях не учитывается. ||
  ||`rights`[**](*popup-b) | array | Права доступа к ресурсу.

  Возможные значения, если `"type":"macro"`:
  - `write` — редактирование;
  - `read` — просмотр;
  - `read_without_download` — просмотр без возможности скачивания;
  - `read_with_password` — просмотр с доступом по паролю;
  - `read_with_password_without_download` — просмотр с доступом по паролю без возможности скачивания.

  Возможные значения, если в параметре `type` указаны `user`, `group` или `department`:
  - `write` — редактирование;
  - `read` — просмотр;

  Тип данных `array` указан для обеспечения обратной совместимости в будущих версиях API. Фактически следует указывать только одно из значений, так как каждый пользователь может иметь только один тип доступа к ресурсу. Если в массиве указать несколько прав, то учитываться будет наивысший по приоритету. ||
  |#

Объекты, которые описывают персональный доступ, имеют приоритет над объектом, описывающим общий доступ. Например, если для всех сотрудников организации настроен доступ с правом «просмотр», то некоторым из них можно переопределить это право на «редактирование».


## Формат ответа {#pub-set-chg-response}

### Успешный ответ

Если запрос был обработан без ошибок, настройки публичного доступа изменяются и API отвечает кодом `200 OK`.

### Ответ с ошибкой

<!-- source: ru/_includes/reference/response-error.md -->
Если запрос вызвал ошибку, возвращается подходящий код ответа, а тело ответа содержит [описание ошибки](https://yandex.ru/dev/disk-api/doc/ru/reference/response-objects.md#error).
<!-- endsource: ru/_includes/reference/response-error.md -->

Некоторые возможные ошибки:

* `400` — Отсутствуют необходимые данные.
* `401` — Не авторизован.
* `403` — API недоступно. Ваши файлы занимают больше места, чем у вас есть. Удалите лишнее или увеличьте объем Диска. / API недоступно. Диск в режиме «только чтение». Проверьте тариф вашей организации. / API недоступно. Недопустимые права доступа. / API недоступно. Достигнут лимит на выдачу прав.
* `404` — Не удалось найти запрошенный ресурс.
* `423` — Технические работы. Сейчас можно только просматривать и скачивать файлы.
* `503` — Сервис временно недоступен.

[*popup-path]: Путь к публикуемому ресурсу. Например, `%2Fbar%2Fphoto.png`.


Путь в значении параметра следует кодировать в URL-формате.

[*popup-allow_address_access]: Параметр с типом `boolean`, который обозначает, по какому формату составлен запрос — с настройками персонального доступа или без.

Допустимые значения:

  - `false` (значение по умолчанию) — запрос не содержит массив настроек персонального доступа. Значение используется для обеспечения обратной совместимости: для запросов, сформированных по формату предыдущих версий API, в которых нет элементов массива `accesses[]`, query-параметр `allow_address_access` должен иметь значение `false` либо отсутствовать.
  - `true` — запрос составлен в формате, который предполагает использование настроек персонального доступа. Применяется, если вы используете текущую версию API и отправляете запрос с телом, в котором содержится массив `accesses[]`.

Чтобы отправлять запросы, которые содержат массив настроек доступа `accesses[]`, у вашего сервиса должна быть возможность и на обработку ответов с этим массивом.

[*popup-a]: Обязательный параметр.

[*popup-b]: Параметр обязательный, если в запросе присутствует объект, к которому этот параметр относится.