عيّنات تعليمات برمجية

توضّح الطلبات أدناه إدارة السياسات باستخدام Policy API. قبل احرص على مراجعة نظرة عامة على Chrome Policy API للحصول على ملخّص عام عن ميزات واجهة برمجة التطبيقات هذه

تستخدِم جميع الطلبات المقدَّمة أدناه المتغيرات التالية:

  • $TOKEN - رمز OAuth 2 المميز
  • $CUSTOMER - معرّف العميل أو الحرف my_customer

إدراج مخططات لسياسات الطابعة

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

بالنسبة إلى المجموعات، سيظل مفتاح المصدر دائمًا هو نفسه المجموعة التي المحددة في الطلب.

المثال التالي مخصص لوحدة تنظيمية. سيكون طلب المجموعة نفس الشيء باستثناء targetResource، الذي سيحتوي على "groups/" بدلاً من "orgunits/ " قبل المعرّف.

الطلب

  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، الذي سيحتوي على "groups/" بدلاً من "orgunits/ " قبل المعرّف.

الطلب

  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، الذي سيحتوي على "groups/" بدلاً من "orgunits/ " قبل المعرّف. هنا لن نسمح بالطابعة 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، الذي سيحتوي على "groups/" بدلاً من "orgunits/ " قبل المعرّف.

الطلب

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 قائمة بترتيب أولوية المجموعات لأحد التطبيقات.

يشير ترتيب أرقام تعريف المجموعات التي يتم عرضها إلى الأولوية التي سيتم تطبيق إعداداته على التطبيق؛ أرقام التعريف اللاحقة سياسات تلغيها السياسات التي تظهر معرّفاتها في موضع سابق من القائمة.

تجدر الإشارة إلى أنّ أولويات المجموعات أعلى من أولويات الوحدة التنظيمية.

في هذا الطلب، نعرض ترتيب الأولوية لـ "exampleapp". تطبيق مستخدم Chrome

الطلب

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 تعديل ترتيب المجموعات لأحد التطبيقات حسب الأولوية.

يشير ترتيب أرقام تعريف المجموعات في الطلب إلى الأولوية التي سيتم تطبيق إعداداته على التطبيق؛ أرقام التعريف اللاحقة سياسات تلغيها السياسات التي تظهر معرّفاتها في موضع سابق من القائمة. يجب أن يتضمن الطلب تضمين كل رقم تعريف مجموعة يتم تطبيقه حاليًا على التطبيق.

تجدر الإشارة إلى أنّ أولويات المجموعات أعلى من أولويات الوحدة التنظيمية.

في هذا الطلب، نضع ترتيبًا الأولوية في "exampleapp". تطبيق مستخدم Chrome

الطلب

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، وعليك تحميل الذي تريد تحديده كقيمة لتلك السياسات في خادم واجهة برمجة التطبيقات، للحصول على عنوان 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"

الرد

يجب أن يكون الرد الناجح فارغًا.

{}