نمونه کد

درخواست‌های زیر مدیریت خط‌مشی با Policy API را نشان می‌دهند. قبل از شروع، مطمئن شوید که مرور کلی API خط مشی Chrome را برای یک خلاصه سطح بالا از ویژگی های این API مرور کرده اید.

تمام درخواست های ارائه شده در زیر از متغیرهای زیر استفاده می کنند:

  • $TOKEN - نشانه OAuth 2
  • $CUSTOMER - شناسه مشتری یا به معنای واقعی کلمه my_customer

طرح‌واره‌های خط‌مشی‌های چاپگر را فهرست کنید

برای فهرست کردن طرح‌واره‌هایی که فقط به سیاست‌های چاپگرها مربوط می‌شوند، پارامتر filter را به درخواست لیست Schema Service اعمال می‌کنیم. می توانید صفحه بندی نتیجه را با استفاده از پارامترهای pageSize و pageToken کنترل کنید.

درخواست

  curl -X GET \
  -H "Authorization: Bearer $TOKEN" \
  "https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policySchemas?filter=chrome.printers&pageSize=2"

واکنش

{
  "policySchemas": [
    {
      "name": "customers/C0202nabg/policySchemas/chrome.printers.AllowForUsers",
      "policyDescription": "Allows a printer for users in a given organization.",
      "additionalTargetKeyNames": [
        {
          "key": "printer_id",
          "keyDescription": "Id of printer as visible in Admin SDK printers API."
        }
      ],
      "definition": {
        "messageType": [
          {
            "name": "AllowForUsers",
            "field": [
              {
                "name": "allowForUsers",
                "number": 1,
                "label": "LABEL_OPTIONAL",
                "type": "TYPE_BOOL"
              }
            ]
          }
        ]
      },
      "fieldDescriptions": [
        {
          "field": "allowForUsers",
          "description": "Controls whether a printer is allowed for users in a given organization."
        }
      ],
      "schemaName": "chrome.printers.AllowForUsers"
    },
    {
      "name": "customers/C0202nabg/policySchemas/chrome.printers.AllowForDevices",
      "policyDescription": "Allows a printer for devices in a given organization.",
      "additionalTargetKeyNames": [
        {
          "key": "printer_id",
          "keyDescription": "Id of printer as visible in Admin SDK printers API."
        }
      ],
      "definition": {
        "messageType": [
          {
            "name": "AllowForDevices",
            "field": [
              {
                "name": "allowForDevices",
                "number": 1,
                "label": "LABEL_OPTIONAL",
                "type": "TYPE_BOOL"
              }
            ]
          }
        ]
      },
      "fieldDescriptions": [
        {
          "field": "allowForDevices",
          "description": "Controls whether a printer is allowed for devices in a given organization."
        }
      ],
      "schemaName": "chrome.printers.AllowForDevices"
    }
  ],
  "nextPageToken": "AEbDN_obE8A98T8YhIeU9VCIZhEBylLBwZRQpGu_DUug-mU4bnzcDx30UnO2xMuuImvfVpmeuXRF6VhJ4OmZpZ4H6EaRvu2qMOPxVN_u"
}

جستجوی طرحواره ها

شما می توانید پرس و جوهای جستجوی پیچیده ای را با استفاده از پارامتر filter= در درخواست لیست Schema Service ایجاد کنید. برای مثال، اگر می‌خواهید طرح‌واره‌هایی را جستجو کنید که در نام آن کلمه "printer" و در توضیحات کلمه "devices" وجود دارد، می‌توانید مقدار زیر را برای فیلتر name=printers AND description=devices اعمال کنید.

نحوه فهرست بندی طرحواره های خط مشی را بیاموزید.

درخواست

  curl -X GET \
  -H "Authorization: Bearer $TOKEN" \
  "https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policySchemas?filter=name=printers%20AND%20description=devices"

واکنش

{
  "policySchemas": [
    {
      "name": "customers/C0202nabg/policySchemas/chrome.printers.AllowForDevices",
      "policyDescription": "Allows a printer for devices in a given organization.",
      "additionalTargetKeyNames": [
        {
          "key": "printer_id",
          "keyDescription": "Id of printer as visible in Admin SDK printers API."
        }
      ],
      "definition": {
        "messageType": [
          {
            "name": "AllowForDevices",
            "field": [
              {
                "name": "allowForDevices",
                "number": 1,
                "label": "LABEL_OPTIONAL",
                "type": "TYPE_BOOL"
              }
            ]
          }
        ]
      },
      "fieldDescriptions": [
        {
          "field": "allowForDevices",
          "description": "Controls whether a printer is allowed for devices in a given organization."
        }
      ],
      "schemaName": "chrome.printers.AllowForDevices"
    }
  ]
}

یک طرح واره خاص دریافت کنید

در نتیجه بالا، لیستی از طرحواره های خط مشی پشتیبانی شده را مشاهده می کنیم. هر طرحواره یک فیلد name دارد که طرحواره را مشخص می کند. در آینده، پس از دانستن نام طرحواره، می‌توانید طرحی خاص را مستقیماً با مراجعه به نام طرحواره در URL درخواست بخوانید.

بیایید یک مثال برای طرح chrome.printers.AllowForUsers ببینیم.

درخواست

  curl -X GET \
  -H "Authorization: Bearer $TOKEN" \
  "https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policySchemas/chrome.printers.AllowForUsers"

واکنش

{
  "name": "customers/C0202nabg/policySchemas/chrome.printers.AllowForUsers",
  "policyDescription": "Allows a printer for users in a given organization.",
  "additionalTargetKeyNames": [
    {
      "key": "printer_id",
      "keyDescription": "Id of printer as visible in Admin SDK printers API."
    }
  ],
  "definition": {
    "messageType": [
      {
        "name": "AllowForUsers",
        "field": [
          {
            "name": "allowForUsers",
            "number": 1,
            "label": "LABEL_OPTIONAL",
            "type": "TYPE_BOOL"
          }
        ]
      }
    ]
  },
  "fieldDescriptions": [
    {
      "field": "allowForUsers",
      "description": "Controls whether a printer is allowed for users in a given organization."
    }
  ],
  "schemaName": "chrome.printers.AllowForUsers"
}

پاسخ طرح خط مشی بالا، طرح خط مشی chrome.printers.AllowForUsers را شرح می دهد. فیلد توجه additionalTargetKeyNames . این فیلد توضیح می‌دهد که این خط‌مشی نیاز به ارائه کلید/مقدار اضافی هنگام برخورد با این خط‌مشی دارد. به ویژه، برای این خط مشی ما همیشه باید شناسه یک چاپگر را ارائه کنیم.

یک مقدار سیاست را بخوانید

بیایید یک خط‌مشی chrome.printers.AllowForUsers برای یک چاپگر خاص بخوانیم. توجه داشته باشید که از فیلد additionalTargetKeys برای مشخص کردن شناسه چاپگر در درخواست استفاده کنید.

می توانید یک خط مشی را از یک واحد سازمانی یا از یک گروه بخوانید.

در پاسخ، به فیلد sourceKey توجه کنید، که مشخص می‌کند ارزش خط‌مشی از کدام واحد سازمانی یا گروه است. برای واحدهای سازمانی، امکانات زیر وجود دارد:

  • اگر واحد سازمانی منبع همان واحد سازمانی ارائه شده در یک درخواست باشد، به این معنی است که این خط‌مشی به صورت محلی در این واحد سازمانی اعمال می‌شود.
  • اگر واحد سازمانی منبع با واحد سازمانی ارائه شده در یک درخواست متفاوت باشد، به این معنی است که خط مشی از واحد سازمانی مبدأ به ارث رسیده است.
  • اگر sourceKey وجود نداشته باشد یا پاسخ خالی باشد، به این معنی است که این خط مشی برای مشتری تنظیم نشده است و دارای مقدار پیش فرض سیستم است.

برای Groups، sourceKey همیشه همان گروهی است که در درخواست مشخص شده است.

مثال زیر برای یک واحد سازمانی است. یک درخواست گروه یکسان خواهد بود به جز targetResource که قبل از شناسه به جای "orgunits/" "groups/" دارد.

درخواست

  curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
        policyTargetKey: {
          targetResource: "orgunits/04fatzly4jbjho9",
          additionalTargetKeys: {"printer_id":"0gjdgxs208tpef"}
        },
        policySchemaFilter: "chrome.printers.AllowForDevices"
    }' \
  "https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies:resolve"

واکنش

{
  "resolvedPolicies": [
    {
      "targetKey": {
        "targetResource": "orgunits/03ph8a2z1xdnme9"
        "additionalTargetKeys": {"printer_id":"0gjdgxs208tpef"}
      },
      "value": {
        "policySchema": "chrome.users.AllowForDevices",
        "value": {
          "allowForDevices": true
        }
      },
      "sourceKey": {
        "targetResource": "orgunits/03ph8a2z3qhz81k"
      }
    }
  ]
}

توجه داشته باشید که تمام موجودیت‌های موجود در منابع هدف را می‌توان با حذف additionalTargetKeys از درخواست دریافت کرد. به عنوان مثال، اگر additionalTargetKeys از درخواست فوق حذف شود، تمام چاپگرهای موجود در منبع هدف مشخص شده را برمی گرداند.

چند خط مشی را بخوانید

ارائه یک فضای نام طرحواره با ستاره (به عنوان مثال، chrome.printers.* ) به شما امکان می دهد مقادیر را برای همه خط مشی ها تحت این فضای نام در یک واحد سازمانی یا گروه خاص بخوانید. درباره طرحواره های خط مشی بیشتر بیاموزید.

مثال زیر برای یک واحد سازمانی است. یک درخواست گروه یکسان خواهد بود به جز targetResource که قبل از شناسه به جای "orgunits/" "groups/" دارد.

درخواست

  curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
        policyTargetKey: {
          targetResource: "orgunits/04fatzly4jbjho9",
        },
        policySchemaFilter: "chrome.printers.*"
    }' \
  "https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies:resolve"

واکنش

{
  "resolvedPolicies": [
    {
      "targetKey": {
        "targetResource": "orgunits/04fatzly4jbjho9",
        "additionalTargetKeys": {
          "printer_id": "0gjdgxs0xd59y1"
        }
      },
      "value": {
        "policySchema": "chrome.printers.AllowForUsers",
        "value": {
          "allowForUsers": false
        }
      }
    },
    {
      "targetKey": {
        "targetResource": "orgunits/04fatzly4jbjho9",
        "additionalTargetKeys": {
          "printer_id": "0gjdgxs0xd59y1"
        }
      },
      "value": {
        "policySchema": "chrome.printers.AllowForDevices",
        "value": {
          "allowForDevices": false
        }
      }
    },
    //...
  ],
  "nextPageToken": "AEbDN_pFvDeGSbQDkvMxr4UA0Ew7UEUw8aJyw95VPs2en6YxMmFcWQ9OQQEIeSkjnWFCQNyz5GGoOKQGEd50e2z6WqvM2w7sQz6TMxVOBD_4NmEHRWtIJCYymeYXWHIrNH29Ezl1wkeyYBAOKnE="
}

تغییر ارزش خط مشی

همانطور که در پاسخ طرح خط مشی دیده می شود، خط مشی chrome.printers.AllowForUsers دارای یک فیلد به نام allowForUsers است. این فیلد از نوع بولی است. مقدار مثال این خط‌مشی می‌تواند {allowForUsers: false} یا {allowForUsers: true} باشد. در این مورد خاص، ما فقط یک فیلد داریم، اما سیاست‌های دیگر ممکن است حاوی چندین فیلد باشند.

در اصلاح درخواست‌ها، باید یک updateMask مشخص کنیم. به روز رسانی ماسک تمام فیلدهایی را که می خواهیم اصلاح کنیم فهرست می کند. اگر خط‌مشی قبلاً به صورت محلی در واحد سازمانی اعمال شده است، فیلدهایی که از طریق ماسک به‌روزرسانی فهرست نشده‌اند دست نخورده باقی می‌مانند. اگر خط‌مشی قبلاً به‌صورت محلی در واحد سازمانی اعمال نشده باشد، و تمام فیلدهایی که از طریق ماسک به‌روزرسانی فهرست نشده‌اند، در صورت لزوم مقادیر خود را از واحد سازمانی مادر کپی می‌کنند و کل خط‌مشی به صورت محلی اعمال می‌شود.

نمونه های زیر برای یک واحد سازمانی است. درخواست های گروه یکسان هستند به جز targetResource که قبل از شناسه به جای "orgunits/" دارای "groups/" است. در اینجا ما چاپگر 0gjdgxs208tpef برای کاربران در شناسه واحد سازمانی 04fatzly4jbjho9 غیرمجاز خواهیم کرد:

درخواست

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
        requests: [{
                policyTargetKey: {
                        targetResource: "orgunits/04fatzly4jbjho9",
                        additionalTargetKeys: {"printer_id":"0gjdgxs208tpef"}
                        },
                policyValue: {
                        policySchema: "chrome.printers.AllowForUsers",
                        value: {allowForUsers: false}
                        },
                updateMask: {paths: "allowForUsers"}
                }]
      }' \
  "https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/orgunits:batchModify"

واکنش

پاسخ موفق خالی است.

{}

فیلدهای چند ارزشی مانند فهرست‌ها یا آرایه‌ها با برچسب "LABEL_REPEATED" مشخص می‌شوند. برای پر کردن فیلدهای چند مقداری، از قالب آرایه JSON زیر استفاده کنید: [value1, value2, value3, ...] .

به عنوان مثال، برای تنظیم url های منبع برای بسته های برنامه و برنامه های افزودنی به عنوان "test1.com"، "test2.com" و "test3.com"، باید درخواست زیر را ارسال کنیم:

درخواست

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d "{
        requests: [
          {
            policy_target_key: {
              target_resource: 'orgunits/03ph8a2z28rz85a'
            },
            updateMask: {
              paths: ['extensionInstallSources']
            },
            policy_value: {
              policy_schema: 'chrome.users.appsconfig.AppExtensionInstallSources', 
              value: {
                extensionInstallSources: ['test1.com', 'test2.com', 'test3.com']
              }
            }
          }
        ]
      }" \
  "https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/orgunits:batchModify"

واکنش

پاسخ موفق خالی است.

{}

برای همه خط‌مشی‌هایی که حاوی فیلدهای NullableDuration هستند، دو نسخه وجود دارد. نسخه اصلی فقط رشته را به عنوان ورودی برای NullableDuration می پذیرد و اکنون منسوخ شده است. لطفاً از نسخه V2 استفاده کنید که نوع مدت زمان را با ورودی عددی جایگزین می کند. به عنوان مثال، برای تعیین حداکثر طول جلسه کاربر به عنوان 10 دقیقه، باید درخواست زیر را ارسال کنیم:

درخواست

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d "{
        requests: [
          {
            policy_target_key: {
              target_resource: 'orgunits/03ph8a2z28rz85a'
            },
            updateMask: {
              paths: ['sessionDurationLimit']
            },
            policy_value: {
              policy_schema: 'chrome.users.SessionLengthV2',
              value: {
                sessionDurationLimit: {
                  duration: 10
                }
              }
            }
          }
        ]
      }" \
  "https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/orgunits:batchModify"

واکنش

پاسخ موفق خالی است.

{}

چندین خط مشی را همزمان اصلاح کنید

متد batchModify به شما این امکان را می دهد که چندین اصلاح سیاست را همزمان ارسال کنید. با این حال، همه سیاست ها را نمی توان با هم جمع کرد. برای جزئیات بیشتر، خط‌مشی‌های به‌روزرسانی دسته‌ای را ببینید.

در این مثال، در یک درخواست، دو خط مشی متفاوت ( chrome.printers.AllowForDevices و chrome.printers.AllowForUsers ) را برای یک چاپگر تغییر خواهیم داد.

مثال زیر برای یک واحد سازمانی است. یک درخواست گروه یکسان خواهد بود به جز targetResource که قبل از شناسه به جای "orgunits/" "groups/" دارد.

درخواست

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
        requests: [{
                policyTargetKey: {
                        targetResource: "orgunits/04fatzly4jbjho9",
                        additionalTargetKeys: {"printer_id":"0gjdgxs208tpef"}
                        },
                policyValue: {
                        policySchema: "chrome.printers.AllowForDevices",
                        value: {allowForDevices: true}
                        },
                updateMask: {paths: "allowForDevices"}
                },
                {
                policyTargetKey: {
                        targetResource: "orgunits/04fatzly4jbjho9",
                        additionalTargetKeys: {"printer_id":"0gjdgxs208tpef"}
                        },
                policyValue: {
                        policySchema: "chrome.printers.AllowForUsers",
                        value: {allowForUsers: true}
                        },
                updateMask: {paths: "allowForUsers"}
                }]
      }' \
  "https://chromepolicy.googleapis.com/v1/customers/C0202nabg/policies/orgunits:batchModify"

واکنش

پاسخ موفق خالی است.

{}

یک ارزش خط مشی را در یک واحد سازمانی به ارث ببرید

متد batchInherit به شما امکان می دهد وضعیت خط مشی را در یک واحد سازمانی از "کاربردی محلی" به "ارثی" تغییر دهید. مقادیر محلی پاک می‌شوند و این خط‌مشی در صورت لزوم مقادیر را از یک واحد سازمانی مادر به ارث می‌برد.

متد batchInherit همچنین به شما امکان می دهد چندین درخواست ارث بری سیاست را به طور همزمان ارسال کنید. با این حال، همه سیاست ها را نمی توان با هم جمع کرد. برای جزئیات بیشتر، خط‌مشی‌های به‌روزرسانی دسته‌ای را ببینید.

درخواست

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
        requests: [{
                policyTargetKey: {
                        targetResource: "orgunits/04fatzly12wd3ox",
                        additionalTargetKeys: {"printer_id":"0gjdgxs208tpef"}
                        },
                policySchema: "chrome.printers.AllowForUsers"
                }]
      }' \
  "https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/orgunits:batchInherit"

واکنش

پاسخ موفق خالی است.

{}

یک مقدار سیاست را در یک گروه حذف کنید

متد batchDelete به شما این امکان را می دهد که یک خط مشی را از یک گروه حذف کنید. مقادیر محلی پاک خواهند شد.

روش batchDelete همچنین به شما امکان می دهد چندین درخواست حذف سیاست را به طور همزمان ارسال کنید. با این حال، همه سیاست ها را نمی توان با هم جمع کرد. برای جزئیات بیشتر، خط‌مشی‌های به‌روزرسانی دسته‌ای را ببینید.

درخواست

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
        requests: [{
                policyTargetKey: {
                        targetResource: "groups/04fatzly12wd3ox",
                        additionalTargetKeys: {"printer_id":"0gjdgxs208tpef"}
                        },
                policySchema: "chrome.printers.AllowForUsers"
                }]
      }' \
  "https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/groups:batchDelete"

واکنش

پاسخ موفق خالی است.

{}

ترتیب اولویت را برای یک گروه فهرست کنید

روش listGroupPriorityOrdering به شما امکان می دهد ترتیب اولویت گروه ها را برای یک برنامه فهرست کنید.

ترتیب شناسه‌های گروهی که برگردانده می‌شوند نشان‌دهنده اولویت اعمال تنظیمات آن‌ها برای برنامه است. خط‌مشی‌های شناسه‌های بعدی توسط خط‌مشی‌هایی که شناسه‌های آن‌ها زودتر در فهرست هستند لغو می‌شوند.

توجه داشته باشید که اولویت های گروه بالاتر از اولویت های واحد سازمانی است.

در این درخواست، اولویت را برای برنامه کاربر Chrome "exampleapp" برمی گردانیم.

درخواست

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
        policyTargetKey: {
                additionalTargetKeys: {"app_id":"chrome:exampleapp"}
                },
        policyNamespace: 'chrome.users.apps'
      }' \
  "https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/groups:listGroupPriorityOrdering"

واکنش

{
  "policyTargetKey": {
    "additionalTargetKeys": {
      "app_id": "chrome:exampleapp"
    }
  },
  "policyNamespace": "chrome.users.apps",
  "groupIds": [
    "03ep43zb2k1nodu",
    "01t3h5sf2k52kol",
    "03q5sasy2ihwnlz"
  ]
}

ترتیب اولویت را برای یک گروه به روز کنید

روش updateGroupPriorityOrdering به شما امکان می دهد ترتیب اولویت گروه ها را برای یک برنامه به روز کنید.

ترتیب شناسه‌های گروه در درخواست نشان‌دهنده اولویتی است که تنظیمات آنها برای برنامه اعمال می‌شود. خط‌مشی‌های شناسه‌های بعدی توسط خط‌مشی‌هایی که شناسه‌های آن‌ها زودتر در فهرست هستند لغو می‌شوند. درخواست باید شامل هر شناسه گروهی باشد که در حال حاضر روی برنامه اعمال می شود.

توجه داشته باشید که اولویت های گروه بالاتر از اولویت های واحد سازمانی است.

در این درخواست، اولویت را برای برنامه کاربر Chrome "exampleapp" تنظیم می کنیم.

درخواست

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
        policyTargetKey: {
                additionalTargetKeys: {"app_id":"chrome:exampleapp"}
                },
        policyNamespace: 'chrome.users.apps',
        groupIds: ['03ep43zb2k1nodu', '01t3h5sf2k52kol', '03q5sasy2ihwnlz']
      }' \
  "https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/groups:updateGroupPriorityOrdering"

واکنش

پاسخ موفق خالی است.

{}

رسیدگی به سیاست هایی که نیاز به تصدیق دارند

برخی از طرح‌واره‌های خط‌مشی، «اعلامیه‌هایی» را برای مقادیر خاصی از یک فیلد خاص مشخص می‌کنند که نیاز به تأیید دارند.

مثالی برای خط مشی chrome.users.PluginVmAllowd :

{
  "name": "customers/C0202nabg/policySchemas/chrome.users.PluginVmAllowed",
  "policyDescription": "Parallels Desktop.",
  # ...
  "fieldDescriptions": [
    {
      "field": "pluginVmAllowed",
      "description": "N/A",
      "knownValueDescriptions": [
        {
          "value": "true",
          "description": "Allow users to use Parallels Desktop."
        },
        {
          "value": "false",
          "description": "Do not allow users to use Parallels Desktop."
        }
      ]
    },
    {
      "field": "ackNoticeForPluginVmAllowedSetToTrue",
      "description": "This field must be set to true to acknowledge the notice message associated with the field 'plugin_vm_allowed' set to value 'true'. Please see the notices listed with this policy for more information."
    }
  ],
  "notices": [
    {
      "field": "pluginVmAllowed",
      "noticeValue": "true",
      "noticeMessage": "By enabling Parallels Desktop, you agree to the Parallels End-User License Agreement specified at https://www.parallels.com/about/legal/eula/. Warning: Device identifiers may be shared with Parallels. Please see privacy policy for more details at https://www.parallels.com/about/legal/privacy/. The minimum recommended configuration includes an i5 processor, 16 GB RAM, and 128 GB storage: https://support.google.com/chrome/a/answer/10044480.",
      "acknowledgementRequired": true
    }
  ],
  "supportUri": "...",
  "schemaName": "chrome.users.PluginVmAllowed"
}

در مثال بالا، تنظیم مقدار فیلد pluginVmAllowed روی true با اعلانی همراه است که دارای acknowledgementRequired است. برای تنظیم صحیح این مقدار فیلد روی true ، باید درخواستی ارسال کنید که فیلد تایید ackNoticeForPluginVmAllowedSetToTrue را به true مشخص کند، در غیر این صورت، در درخواست خود با خطا مواجه خواهید شد.

در این مثال، شما باید درخواست اصلاح دسته ای زیر را ارسال کنید.

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d "{
  'requests': [
    {
      'policyTargetKey': {
        'targetResource': 'orgunits/03ph8a2z10ybbh2'
      },
      'policyValue': {
        'policySchema': 'chrome.users.PluginVmAllowed',
        'value': {
          'pluginVmAllowed': true,
          'ackNoticeForPluginVmAllowedSetToTrue': true
        }
      },
      'updateMask': {
        'paths': [
          'pluginVmAllowed',
          'ackNoticeForPluginVmAllowedSetToTrue'
        ]
      }
    }
  ]
}" \
"https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/orgunits:batchModify"

تنظیم سیاست های فایل

برخی از خط‌مشی‌ها دارای فیلدهایی هستند که به‌عنوان UploadedFile تایپ می‌شوند، باید فایلی را که می‌خواهید به‌عنوان مقدار آن خط‌مشی‌ها تنظیم کنید در سرور API آپلود کنید تا یک URL برای استفاده در درخواست‌های BatchModify دریافت کنید.

در این مثال ما chrome.users.Wallpaper با آپلود یک فایل JPEG تنظیم خواهیم کرد.

فایل را آپلود کنید

درخواست

curl -X POST \
  -H "Content-Type: image/jpeg" \
  -H "Authorization: Bearer $TOKEN" \
  -T "/path/to/the/file" \
  "https://chromepolicy.googleapis.com/upload/v1/customers/$CUSTOMER/policies/files:uploadPolicyFile?policy_field=chrome.users.Wallpaper.wallpaperImage"

واکنش

یک پاسخ موفق باید حاوی URL برای دسترسی به فایل باشد:

{
  "downloadUri": "https://storage.googleapis.com/chromeos-mgmt/0gjdgxs370bkl6/ChromeOsWallpaper/32ac50ab-b5ae-4bba-afa8-b6b443912897"
}

سیاست فایل را تنظیم کنید

درخواست

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
        requests: [{
                policyTargetKey: {
                        targetResource: "orgunits/04fatzly4jbjho9",
                        },
                policyValue: {
                        policySchema: "chrome.users.Wallpaper",
                        value: {
                          wallpaperImage: {downloadUri: "https://storage.googleapis.com/chromeos-mgmt/0gjdgxs370bkl6/ChromeOsWallpaper/32ac50ab-b5ae-4bba-afa8-b6b443912897"}
                          }
                        },
                updateMask: {paths: "wallpaperImage"}
                }]
      }' \
  "https://chromepolicy.googleapis.com/v1/customers/$CUSTOMER/policies/orgunits:batchModify"

واکنش

یک پاسخ موفق باید خالی باشد.

{}