Directory API: 組織部門

組織部門を管理する

Google Workspace アカウントの組織ツリーは、ユーザーを論理的かつ階層的な構造で管理できる組織部門で構成されています。これは、管理コンソールの [組織とユーザー] タブにある機能と類似したものです。顧客の組織部門に関する階層の深さは、35 レベルに制限されています。詳しくは、管理者向けヘルプセンターをご覧ください。

  • 1 つの Google Workspace アカウントに対する組織ツリーは 1 つだけです。最初にアカウントを設定したときに、アカウント レベルで組織部門が設定されます。これは、プライマリ ドメインに関連付けられている組織です。プライマリ ドメインの詳細については、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 組織部門を作成するリクエスト本文のサンプルです。nameparentOrgUnitPath は必須です。

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 レスポンス

以下の例では、「frontline sales」組織部門が取得されます。リクエストの URI に「frontline+sales」という HTTP エンコードが使用されていることに注意してください。

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 クエリ文字列は、orgUnitPath の下にあるすべて(all)の下位組織部門、または orgUnitPath の直接の子(children)を返します。デフォルト値は 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 のステータス コードが返されます。

削除できるのは、子組織部門がない、または割り当てられているユーザーがいない組織部門だけです。削除する前に、ユーザーを他の組織部門に再割り当てして、子組織部門を削除する必要があります。