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

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

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

  • В аккаунте Google Workspace существует только одно организационное дерево. Когда эта учетная запись изначально настроена, она имеет организационное подразделение на уровне учетной записи. Это организация, связанная с основным доменом. Дополнительные сведения об основном домене см. в информации об ограничениях API .
  • Путь организационного подразделения уникален. Название организационного подразделения может быть не уникальным в иерархии организации, но оно уникально среди родственных ему организационных подразделений. В названии организационного подразделения не учитывается регистр.
  • Организационная единица наследует политики из организационной иерархии. Любая организационная единица может заблокировать эту цепочку родительского наследования. А приоритет одной политики над другой определяется ближайшей организационной единицей. Это означает, что политики более низкого организационного подразделения могут иметь приоритет над политиками вышестоящих родительских подразделений. По умолчанию дочерняя организация наследует настройки ближайшего родительского организационного подразделения. Мы рекомендуем использовать значение по умолчанию, поскольку установка для 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

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

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

Строка запроса get либо возвращает all подразделения организации в рамках orgUnitPath , либо возвращает непосредственные children orgUnitPath . По умолчанию используется 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 .

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