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

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

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

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

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

Чтобы создать организационное подразделение, используйте следующий запрос 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",
    "blockInheritance": false
}

JSON-ответ

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

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

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

Чтобы обновить организационное подразделение, используйте следующий запрос 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",
    "blockInheritance": false
}

Если пользователь не был назначен определенному организационному подразделению при создании учетной записи пользователя, эта учетная запись находится в организационном подразделении верхнего уровня. Организационное подразделение пользователя определяет, к каким сервисам 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",
    "blockInheritance": false
}

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

Чтобы получить все дочерние подразделения организационного подразделения, непосредственных дочерних подразделений организационного подразделения или все дочерние подразделения плюс указанное организационное подразделение, используйте следующий запрос 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",
    "blockInheritance": false
     },
     {
    "kind": "directory#orgUnit",
    "name": "frontline sales",
    "description": "The frontline sales team",
    "orgUnitPath": "/corp/sales/frontline sales",
    "parentOrgUnitPath": "/corp/sales",
    "blockInheritance": false
     },
     {
    "kind": "directory#orgUnit",
    "name": "support",
    "description": "The corporate support team",
    "orgUnitPath": "/corp/support",
    "parentOrgUnitPath": "/corp",
    "blockInheritance": false
     },
     {
    "kind": "directory#orgUnit",
    "name": "sales_support",
    "description": "The BEST support team",
    "orgUnitPath": "/corp/support/sales_support",
    "parentOrgUnitPath": "/corp/support",
    "blockInheritance": false
     }
  ]
  }

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

Чтобы удалить организационное подразделение, используйте следующий запрос 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 .

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