واجهة برمجة التطبيقات للدليل: الوحدات التنظيمية

إدارة الوحدات التنظيمية

يتألف الهيكل التنظيمي لحساب Google Workspace من وحدات تنظيمية تتيح لك إدارة المستخدمين في بنية منطقية وهرمية. وهذا يشبه الوظيفة في علامة التبويب "المؤسسات والمستخدمون" بوحدة تحكم المشرف. يقتصر العرض الهرمي للوحدة التنظيمية للعميل على 35 مستوى من العمق. لمزيد من المعلومات، اطّلِع على مركز مساعدة المشرفين.

  • يتم تضمين شجرة مؤسسة واحدة فقط في حساب Google Workspace. عندما يتم إعداد هذا الحساب مبدئيًا، تكون له وحدة تنظيمية على مستوى الحساب. هذه هي المؤسسة المرتبطة بالنطاق الأساسي. لمزيد من المعلومات حول النطاق الأساسي، يُرجى الاطّلاع على معلومات حول حدود واجهة برمجة التطبيقات.
  • يكون اسم مسار الوحدة التنظيمية فريدًا. لا يجوز أن يكون اسم الوحدة التنظيمية فريدًا داخل التسلسل الهرمي للمؤسسة، ولكن يكون اسمه فريدًا بين الوحدات التنظيمية التابعة لها. ويكون اسم الوحدة التنظيمية غير حساس لحالة الأحرف.
  • تكتسب الوحدة التنظيمية السياسات من التسلسل الهرمي التنظيمي. يمكن لأي وحدة تنظيمية حظر هذه السلسلة من الاكتسابات الأبوية من خلال إلغاء السياسة المكتسَبة. يتم تحديد أولوية إحدى السياسات على الأخرى من خلال أقرب وحدة تنظيمية. ويعني هذا أنّه يمكن لسياسات الوحدة التنظيمية الأقل أن تكون لها الأولوية على سياسات الوحدات الأبوية الأعلى. يسمح الإعداد blockInheritance بحظر اكتساب الإعدادات على وحدة تنظيمية ومؤسستها الفرعية. تم إيقاف blockInheritance نهائيًا. لم يعُد من الممكن ضبط السياسة على "صحيح" ويمكن أن تؤدي إلى عواقب غير مقصودة. لمزيد من المعلومات حول الاكتساب والمستخدمين في بنية المؤسسة، راجِع مركز مساعدة الإدارة.
  • يمكن نقل وحدة تنظيمية لأعلى أو أسفل شجرة هرمية. ويمكن نقل المستخدمين المرتبطين بالمؤسسة بشكل فردي أو دُفعة عند تعبئة مؤسسة جديدة أو نقل مجموعة فرعية من المستخدمين من وحدة تنظيمية إلى أخرى.
  • ويمكن أن تتغيّر البيانات المحفوظة في خصائص الوحدة التنظيمية باستمرار. عند تقديم طلب، يتم ضمان اتساق الخصائص المعروضة لأحد الكيانات في وقت استرداد الكيان، وهذا يعني أنّك لن تظهر لك تعديلات "جزئية". إذا كانت عملية الاسترجاع تعرض أكثر من كيان واحد، ليس هناك ضمان اتّساق على مستوى الكيانات، وينطبق ذلك بوجهٍ خاص عندما تمتد الاستجابة إلى صفحات متعددة في التقسيم على صفحات.

إنشاء وحدة تنظيمية

لإنشاء وحدة تنظيمية، استخدِم طلب 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

لفهم البنية التنظيمية لحسابك، اطّلِع على مركز مساعدة المشرفين. بالنسبة إلى خصائص الطلب والاستجابة، اطّلِع على مرجع واجهة برمجة التطبيقات.

طلب 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 التالي وضمِّن التفويض الموضّح في طلبات التفويض. بالنسبة إلى خصائص الطلب والاستجابة، اطّلِع على مرجع واجهة برمجة التطبيقات:

إذا كنت مشرفًا تعدِّل وحدة تنظيمية، استخدِم 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 هي المسار الكامل لهذه الوحدة التنظيمية. بالنسبة إلى خصائص الطلب والاستجابة، اطّلِع على مرجع واجهة برمجة التطبيقات:

إذا كنت مشرفًا تستردّ وحدة تنظيمية، استخدِم "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 التالي وتضمين التفويض الموضّح في تفويض الطلبات. بالنسبة إلى خصائص الطلب والاستجابة، اطّلِع على مرجع واجهة برمجة التطبيقات.

إذا كنت مشرف حساب وتسترد جميع الوحدات التنظيمية الفرعية، استخدِم 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، استخدِم عملية استرداد مستخدم. بالنسبة إلى خصائص الطلب والاستجابة، اطّلِع على مرجع واجهة برمجة التطبيقات:

إذا كنت مشرفًا لحساب يحذف وحدة تنظيمية، يمكنك استخدام 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.

يمكنك فقط حذف الوحدات التنظيمية التي لا تحتوي على أي وحدات تنظيمية فرعية أو أي مستخدمين تم تعيينهم لها. عليك إعادة تعيين المستخدمين إلى وحدات تنظيمية أخرى وإزالة أي وحدات تنظيمية فرعية قبل الحذف.