Directory API: واحدهای سازمانی

مدیریت واحدهای سازمانی

درخت سازمانی یک حساب Google Workspace از واحدهای سازمانی تشکیل شده است که به شما امکان می‌دهد کاربران خود را در یک ساختار منطقی و سلسله مراتبی مدیریت کنید. این مشابه عملکردی است که در برگه «سازمان‌ها و کاربران» کنسول Google Admin یافت می‌شود. سلسله مراتب واحد سازمانی مشتری به ۳۵ سطح عمق محدود می‌شود. برای اطلاعات بیشتر، به مرکز راهنمای Admin مراجعه کنید.

  • فقط یک درخت سازمانی برای یک حساب 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 reseller زیر یک نمونه بدنه درخواست را نشان می‌دهد که واحد سازمانی 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 زیر استفاده کنید و مجوز شرح داده شده در Authorize requests را نیز لحاظ کنید. برای ویژگی‌های درخواست و پاسخ، به مرجع 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 از عملیات Retrieve a user استفاده کنید.

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

پاسخ JSON

در مثال زیر، واحد سازمانی «فروش خط مقدم» بازیابی می‌شود. به کدگذاری HTTP «خط مقدم+فروش» در 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 از عملیات Retrieve a user استفاده کنید:

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 زیر استفاده کنید و مجوز شرح داده شده در درخواست‌های Authorize را نیز لحاظ کنید. برای بازیابی customerId ، از عملیات Retrieve a user استفاده کنید. برای ویژگی‌های درخواست و پاسخ، به مرجع API مراجعه کنید:

اگر شما مدیر حساب کاربری هستید و می‌خواهید یک واحد سازمانی را حذف کنید، از my_customer استفاده کنید.

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

اگر شما یک فروشنده‌ی مجدد هستید که یک واحد سازمانی را برای یک مشتریِ دوباره فروخته شده حذف می‌کنید، از customerId استفاده کنید. برای دریافت customerId از عملیات Retrieve a user استفاده کنید.

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 را برمی‌گرداند.

شما فقط می‌توانید واحدهای سازمانی را حذف کنید که هیچ واحد سازمانی فرزند یا کاربری به آنها اختصاص داده نشده باشد. قبل از حذف، باید کاربران را به واحدهای سازمانی دیگر اختصاص دهید و واحدهای سازمانی فرزند را حذف کنید.