API каталога: организационные подразделения

Управление организационными подразделениями

Структура организационной структуры учетной записи Google Workspace состоит из организационных подразделений, позволяющих управлять пользователями в логической и иерархической форме. Это аналогично функциональности, доступной на вкладке «Организации и пользователи» в консоли администратора Google. Иерархия организационных подразделений клиента ограничена 35 уровнями. Для получения дополнительной информации см. справочный центр администратора .

  • Для каждой учетной записи Google Workspace существует только одно организационное дерево. При первоначальной настройке этой учетной записи на уровне учетной записи указывается организационное подразделение. Это организация, связанная с основным доменом. Дополнительную информацию об основном домене см. в разделе «Информация об ограничениях API» .
  • Путь к файлу организационной единицы уникален. Название организационной единицы может быть не уникальным в рамках иерархии организации, но оно уникально среди родственных ей организационных единиц. Кроме того, название организационной единицы нечувствительно к регистру.
  • Организационная единица наследует политики от организационной иерархии. Любая организационная единица может заблокировать эту цепочку наследования от родительских единиц, переопределив унаследованную политику. Приоритет одной политики над другой определяется ближайшей организационной единицей. Это означает, что политики нижестоящей организационной единицы могут иметь приоритет над политиками вышестоящих родительских единиц. Для получения дополнительной информации о наследовании и пользователях в организационной структуре см. справочный центр администрирования .
  • Организационную единицу можно перемещать вверх или вниз по иерархической структуре. Кроме того, связанных с организацией пользователей можно перемещать по отдельности или группами при создании новой организации или при перемещении подмножества пользователей из одной организационной единицы в другую.
  • Данные, хранящиеся в свойствах организационных единиц, могут постоянно меняться. При выполнении запроса гарантируется, что свойства, возвращаемые для сущности, будут оставаться неизменными на момент получения сущности. То есть, вы не увидите «частичных» обновлений. Если операция получения возвращает более одной сущности, гарантия согласованности между сущностями отсутствует. Это особенно актуально, когда ответ занимает несколько страниц в режиме постраничной навигации.

Создайте организационное подразделение.

Для создания организационной единицы используйте следующий POST запрос и укажите авторизацию, описанную в разделе «Авторизация запросов» .

Если вы являетесь администратором и создаете организационное подразделение, используйте my_customer .

POST https://admin.googleapis.com/admin/directory/v1/customer/my_customer/orgunits

Если вы являетесь реселлером и создаете организационное подразделение для клиента, которому перепродаете товары, используйте customerId . Чтобы получить customerId , используйте операцию «Получить пользователя» .

POST https://admin.googleapis.com/admin/directory/v1/customer/customerId/orgunits

Чтобы понять организационную структуру вашей учетной записи, обратитесь к справочному центру администратора . Свойства запросов и ответов см. в справочнике API .

JSON-запрос

В следующем примере JSON-запроса для реселлера показан образец тела запроса, который создает организационное подразделение sales_support. Необходимо указать name и parentOrgUnitPath :

POST https://admin.googleapis.com/admin/directory/v1/customer/C03az79cb/orgunits
{
    "name": "sales_support",
    "description": "The sales support team",
    "parentOrgUnitPath": "/corp/support",
}

JSON-ответ

В случае успешного ответа возвращается код состояния HTTP 201. Вместе с кодом состояния ответ возвращает свойства новой группы:

{
    "kind": "directory#orgUnit",
    "name": "sales_support",
    "description": "The sales support team",
    "orgUnitPath": "/corp/support/sales_support",
    "parentOrgUnitPath": "/corp/support"
  }

Обновить организационное подразделение

Для обновления организационной единицы используйте следующий PUT запрос и укажите авторизацию, описанную в разделе «Авторизация запросов» . Свойства запроса и ответа см. в справочнике API :

Если вы являетесь администратором и обновляете организационное подразделение, используйте my_customer .

 PUT https://admin.googleapis.com/admin/directory/v1/customer/my_customer/orgunits/orgUnitPath

Если вы являетесь реселлером и обновляете организационное подразделение для клиента, которому вы перепродали товар, используйте customerId . Чтобы получить customerId , используйте операцию «Получить пользователя» .

PUT https://admin.googleapis.com/admin/directory/v1/customer/customerId/orgunits/orgUnitPath

JSON-запрос

В приведенном ниже примере описание организационной единицы было обновлено:

PUT https://admin.googleapis.com/admin/directory/v1/customer/my_customer/orgunits/corp/support/sales_support
{
    "description": "The BEST sales support team"
}

Примечания к запросу на обновление:

  • Вам нужно лишь указать обновленную информацию в вашем запросе. Нет необходимости вводить все свойства группы в запрос.
  • Если при создании учетной записи пользователь не был отнесен к конкретному организационному подразделению, то учетная запись относится к организационному подразделению верхнего уровня.
  • Вы можете переместить организационную единицу в другую часть организационной структуры вашей учетной записи, задав свойство parentOrgUnitPath в запросе. Важно отметить, что перемещение организационной единицы может изменить услуги и настройки для пользователей в перемещаемой организационной единице.

JSON-ответ

В случае успешного ответа возвращается код состояния HTTP 201. Вместе с кодом состояния ответ возвращает свойства обновленного организационного подразделения.

{
    "kind": "directory#orgUnit",
    "name": "sales_support",
    "description": "The BEST sales support team",
    "orgUnitPath": "/corp/support/sales_support",
    "parentOrgUnitPath": "/corp/support"
}

Если при создании учетной записи пользователь не был привязан к конкретному организационному подразделению, учетная запись находится в организационном подразделении верхнего уровня. Организационное подразделение пользователя определяет, к каким сервисам Google Workspace он имеет доступ. Если пользователь переводится в новую организацию, его доступ изменяется. Дополнительную информацию об организационных структурах см. в справочном центре администрирования . Дополнительную информацию о переводе пользователя в другую организацию см. в разделе «Обновление пользователя» .

Получить организационную единицу

Для получения информации об организационном подразделении используйте следующий GET запрос, включив в него авторизацию, описанную в разделе «Авторизация запросов» . Строка запроса orgUnitPath — это полный путь к данному организационному подразделению. Свойства запроса и ответа см. в справочнике API :

Если вы являетесь администратором и получаете информацию об организационном подразделении, используйте my_customer .

GET https://admin.googleapis.com/admin/directory/v1/customer/my_customer/orgunits/orgUnitPath

Если вы являетесь реселлером и получаете информацию об организационной единице для клиента, которому вы перепродали товар, используйте customerId . Чтобы получить customerId используйте операцию «Получить пользователя» .

GET https://admin.googleapis.com/admin/directory/v1/customer/customerId/orgunits/orgUnitPath

JSON-ответ

В приведенном ниже примере извлекается организационное подразделение «фронтальные продажи». Обратите внимание на HTTP-кодировку «frontline+sales» в URI запроса:

GET https://admin.googleapis.com/admin/directory/v1/customer/my_customer/orgunits/corp/sales/frontline+sales

В случае успешного ответа возвращается код состояния HTTP 200. Вместе с кодом состояния ответ содержит настройки организационного подразделения:

{
    "kind": "directory#orgUnit",
    "name": "frontline sales",
    "description": "The frontline sales team",
    "orgUnitPath": "/corp/sales/frontline sales",
    "parentOrgUnitPath": "/corp/sales"
}

Получить организационные подразделения

Чтобы получить все дочерние подразделения организационной структуры, их непосредственных дочерних элементов или все дочерние подразделения плюс указанное организационное подразделение, используйте следующий GET запрос и включите авторизацию, описанную в разделе «Авторизация запросов» . Свойства запроса и ответа см. в справочнике API .

Если вы являетесь администратором учетной записи и получаете информацию обо всех подразделениях организации, используйте my_customer . Для удобства чтения в этом примере используются переносы строк:

GET https://admin.googleapis.com/admin/directory/v1/customer/my_customer
/orgunits?orgUnitPath=full org unit path&type=all or children or all_including_parent

Если вы являетесь реселлером и получаете информацию об организационных подразделениях для клиента, которому вы перепродали продукт, используйте customerId . Чтобы получить customerId используйте операцию «Получить пользователя» :

GET https://admin.googleapis.com/admin/directory/v1/customer/customerId
/orgunits?orgUnitPath=full org unit path&type=all or children or all_including_parent

Строка запроса get возвращает либо all дочерние организационные подразделения, находящиеся в пределах orgUnitPath , либо непосредственных children orgUnitPath , либо все дочерние организационные подразделения и указанный orgUnitPath для all_including_parent . По умолчанию используется type=children .

JSON-ответ

Например, этот запрос возвращает все организационные подразделения, начиная с организационного подразделения /corp :

GET https://admin.googleapis.com/admin/directory/v1/customer/my_customer/orgunits?orgUnitPath=/corp&type=all

В случае успешного ответа возвращается код состояния HTTP 200. Вместе с кодом состояния ответ содержит информацию об организационных подразделениях учетной записи:

{
"kind": "directory#orgUnits",
    "organizationUnits": [
     {
    "kind": "directory#orgUnit",
    "name": "sales",
    "description": "The corporate sales team",
    "orgUnitPath": "/corp/sales",
    "parentOrgUnitPath": "/corp"
     },
     {
    "kind": "directory#orgUnit",
    "name": "frontline sales",
    "description": "The frontline sales team",
    "orgUnitPath": "/corp/sales/frontline sales",
    "parentOrgUnitPath": "/corp/sales"
     },
     {
    "kind": "directory#orgUnit",
    "name": "support",
    "description": "The corporate support team",
    "orgUnitPath": "/corp/support",
    "parentOrgUnitPath": "/corp"
     },
     {
    "kind": "directory#orgUnit",
    "name": "sales_support",
    "description": "The BEST support team",
    "orgUnitPath": "/corp/support/sales_support",
    "parentOrgUnitPath": "/corp/support"
     }
  ]
  }

Удаление организационной единицы

Для удаления организационной единицы используйте следующий запрос DELETE , включив в него авторизацию, описанную в разделе «Авторизованные запросы» . Для получения customerId используйте операцию «Получить пользователя» . Свойства запроса и ответа см. в справочнике API :

Если вы являетесь администратором учетной записи и удаляете организационное подразделение, используйте my_customer .

DELETE https://admin.googleapis.com/admin/directory/v1/customer/my_customer/orgunits/orgUnitPath

Если вы являетесь реселлером и удаляете организационное подразделение для клиента, которому вы перепродали товар, используйте customerId . Чтобы получить customerId используйте операцию «Получить пользователя» .

DELETE https://admin.googleapis.com/admin/directory/v1/customer/customerId/orgunits/orgUnitPath
Например, запрос DELETE отправленный администратором реселлера, удаляет организационную единицу 'backend_tests':
DELETE https://admin.googleapis.com/admin/directory/v1/customer/C03az79cb/orgunits/corp/sales/backend_tests

В случае успешного ответа возвращается код состояния HTTP 200 .

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