Contoh kode

Permintaan di bawah ini mengilustrasikan pengelolaan kebijakan dengan Policy API. Sebelum Anda memulai, pastikan Anda meninjau Ringkasan Chrome Policy API untuk ringkasan tingkat tinggi dari fitur API ini.

Semua permintaan yang ditampilkan di bawah ini menggunakan variabel berikut:

  • $TOKEN - Token OAuth 2
  • $CUSTOMER - ID pelanggan atau my_customer literal

Menampilkan daftar skema untuk kebijakan printer

Untuk mencantumkan skema yang hanya terkait dengan kebijakan untuk printer, kami akan menerapkan filter ke permintaan daftar Schema Service. Anda dapat mengontrol penomoran halaman hasil menggunakan parameter pageSize dan pageToken.

Permintaan

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

Respons

{
  "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"
}

Telusuri skema

Anda dapat membuat kueri penelusuran yang kompleks menggunakan parameter filter= di Skema Permintaan daftar layanan. Misalnya jika Anda ingin mencari skema yang memiliki kata "printer" pada nama dan kata "devices" pada deskripsi, Anda dapat menerapkan nilai berikut ke filter name=printers AND description=devices.

Pelajari cara mencantumkan skema kebijakan.

Permintaan

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

Respons

{
  "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"
    }
  ]
}

Mendapatkan skema tertentu

Dalam hasil di atas, kita akan melihat daftar skema kebijakan yang didukung. Setiap skema memiliki kolom name yang mengidentifikasi skema. Di masa mendatang, setelah Anda mengetahui Anda dapat membaca skema tertentu secara langsung dengan merujuk ke nama skema dalam URL permintaan.

Mari kita lihat contoh untuk skema chrome.printers.AllowForUsers.

Permintaan

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

Respons

{
  "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"
}

Respons skema kebijakan di atas menjelaskan skema kebijakan chrome.printers.AllowForUsers. Kolom pemberitahuan additionalTargetKeyNames. Kolom ini menjelaskan bahwa kebijakan memerlukan penyediaan kunci/nilai tambahan ketika berurusan dengan kebijakan ini. Secara khusus, untuk kebijakan ini, kita selalu perlu memberikan pengenal {i>printer<i}.

Membaca nilai kebijakan

Mari kita baca kebijakan chrome.printers.AllowForUsers untuk printer tertentu. Perhatikan penggunaan kolom additionalTargetKeys untuk menentukan ID printer dalam permintaan.

Anda dapat membaca kebijakan dari Unit Organisasi atau dari Grup.

Dalam respons, perhatikan kolom sourceKey, yang menentukan Unit Organisasi atau Grup tempat asal nilai kebijakan. Sebagai Unit Organisasi, terdapat kemungkinan berikut:

  • Jika Unit Organisasi sumber sama dengan Unit Organisasi yang diberikan dalam , itu berarti kebijakan tersebut diterapkan secara lokal di Unit Organisasi ini.
  • Jika Unit Organisasi sumber berbeda dengan Unit Organisasi yang diberikan dalam permintaan, itu berarti kebijakan diwarisi dari sumber Satuan.
  • Jika tidak ada sourceKey, atau responsnya kosong, berarti kebijakan tersebut tidak ditetapkan untuk pelanggan, dan memiliki nilai sistem default.

Untuk Grup, sourceKey akan selalu sama dengan Grup yang yang ditentukan dalam permintaan.

Contoh berikut ditujukan untuk Unit Organisasi. Permintaan Grup akan sama kecuali untuk targetResource, yang akan memiliki "groups/" bukannya "unit org/" sebelum ID.

Permintaan

  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"

Respons

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

Perhatikan bahwa semua entity dalam resource target bisa diambil dengan menghilangkan additionalTargetKeys dari permintaan. Misalnya, jika additionalTargetKeys dihilangkan dari permintaan di atas, ini akan mengembalikan semua {i>printer<i} di resource target yang ditentukan.

Membaca beberapa kebijakan

Memberikan namespace skema dengan tanda bintang (misalnya, chrome.printers.*) mengizinkan membaca nilai semua kebijakan pada namespace ini dalam Unit Organisasi atau Grup. Pelajari selengkapnya tentang Skema Kebijakan.

Contoh berikut ditujukan untuk Unit Organisasi. Permintaan Grup akan sama kecuali untuk targetResource, yang akan memiliki "groups/" bukannya "unit org/" sebelum ID.

Permintaan

  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"

Respons

{
  "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="
}

Ubah nilai kebijakan

Seperti yang terlihat dalam respons skema kebijakan, kebijakan chrome.printers.AllowForUsers memiliki satu kolom bernama allowForUsers. Kolom ini berjenis boolean. Contoh nilai kebijakan dapat berupa {allowForUsers: false} atau {allowForUsers: true}. Dalam kasus ini, kita hanya memiliki satu {i>field<i}, tetapi kebijakan lain dapat berisi beberapa {i>field<i}.

Dalam permintaan perubahan, kita harus menentukan updateMask. Perbarui daftar mask semua {i>field <i}yang ingin kita ubah. Jika kebijakan sudah diterapkan secara lokal Unit Organisasi, maka kolom yang tidak tercantum melalui penyamaran pembaruan akan tetap tidak tersentuh. Jika kebijakan belum diterapkan secara lokal di Unit Organisasi, dan semua kolom yang tidak tercantum melalui penyamaran pembaruan akan menyalin nilai mereka dari Unit Organisasi induk jika diperlukan, dan seluruh kebijakan akan diterapkan secara lokal.

Contoh berikut ditujukan untuk Unit Organisasi. Permintaan grup adalah sama kecuali untuk targetResource, yang akan memiliki "groups/" bukannya "unit org/" sebelum ID. Di sini kita akan melarang printer 0gjdgxs208tpef untuk pengguna di ID Unit Organisasi 04fatzly4jbjho9:

Permintaan

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"

Respons

Respons berhasil kosong.

{}

Kolom multi-nilai seperti daftar atau array ditandai dengan "LABEL_REPEATED" label. Untuk mengisi kolom multi-nilai, gunakan format array JSON berikut: [value1, value2, value3, ...].

Misalnya, untuk menetapkan URL sumber untuk paket aplikasi dan ekstensi sebagai "test1.com", "test2.com" dan "test3.com", kita perlu mengirimkan permintaan berikut:

Permintaan

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"

Respons

Respons berhasil kosong.

{}

Ada dua versi untuk semua kebijakan yang berisi kolom NullableDuration. Versi asli hanya menerima string sebagai input untuk NullableDuration dan sekarang tidak digunakan lagi. Gunakan versi V2 yang menggantikan jenis durasi dengan input numerik. Misalnya, untuk menetapkan durasi sesi pengguna maksimum 10 menit kami perlu mengirimkan permintaan berikut:

Permintaan

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"

Respons

Respons berhasil kosong.

{}

Mengubah beberapa kebijakan sekaligus

batchModify memungkinkan Anda mengirim beberapa perubahan kebijakan secara bersamaan. Namun, tidak semua kebijakan dapat dikelompokkan bersama. Untuk detail selengkapnya, lihat Kebijakan update batch.

Dalam contoh ini, kami akan mengubah, dalam permintaan yang sama, dua perbedaan kebijakan (chrome.printers.AllowForDevices dan chrome.printers.AllowForUsers) untuk {i>printer<i} yang sama.

Contoh berikut ditujukan untuk Unit Organisasi. Permintaan Grup akan sama kecuali untuk targetResource, yang akan memiliki "groups/" bukannya "unit org/" sebelum ID.

Permintaan

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"

Respons

Respons berhasil kosong.

{}

Mewarisi nilai kebijakan di Unit Organisasi

batchInherit memungkinkan Anda untuk mengubah status kebijakan di Unit Organisasi dari "diterapkan secara lokal" menjadi "diwarisi". Nilai lokal akan dihapus, dan kebijakan akan mewarisi nilai dari Unit Organisasi induk jika berlaku.

Metode batchInherit juga memungkinkan Anda mengirim beberapa pewarisan kebijakan permintaan pada saat yang sama. Namun, tidak semua kebijakan dapat dikelompokkan bersama. Untuk detail selengkapnya, lihat Kebijakan update batch.

Permintaan

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"

Respons

Respons berhasil kosong.

{}

Menghapus nilai kebijakan di Grup

batchDelete memungkinkan Anda menghapus suatu kebijakan dari sebuah Grup. Nilai lokal akan dihapus.

Metode batchDelete juga memungkinkan Anda mengirim beberapa penghapusan kebijakan permintaan pada saat yang sama. Namun, tidak semua kebijakan dapat dikelompokkan bersama. Untuk detail selengkapnya, lihat Kebijakan update batch.

Permintaan

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"

Respons

Respons berhasil kosong.

{}

Membuat daftar pengurutan prioritas untuk Grup

listGroupPriorityOrdering memungkinkan Anda untuk membuat daftar urutan prioritas Grup untuk sebuah aplikasi.

Urutan ID Grup yang ditampilkan menunjukkan prioritas setelan mereka akan diterapkan untuk aplikasi; ID berikutnya kebijakan tersebut akan diganti oleh kebijakan yang ID-nya berada di awal daftar.

Perhatikan bahwa prioritas Grup lebih tinggi daripada prioritas Unit Organisasi.

Dalam permintaan ini, kami menampilkan pengurutan prioritas untuk "exampleapp" Aplikasi Pengguna Chrome.

Permintaan

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"

Respons

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

Memperbarui pengurutan prioritas untuk Grup

updateGroupPriorityOrdering memungkinkan Anda untuk memperbarui urutan prioritas Grup untuk sebuah aplikasi.

Urutan ID Grup dalam permintaan menunjukkan prioritas yang setelan mereka akan diterapkan untuk aplikasi; ID berikutnya kebijakan tersebut akan diganti oleh kebijakan yang ID-nya berada di awal daftar. Permintaan harus mencakup setiap ID Grup yang saat ini diterapkan pada aplikasi.

Perhatikan bahwa prioritas Grup lebih tinggi daripada prioritas Unit Organisasi.

Dalam permintaan ini, kami menetapkan pengurutan prioritas untuk "exampleapp" Aplikasi Pengguna Chrome.

Permintaan

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"

Respons

Respons berhasil kosong.

{}

Menangani Kebijakan yang Memerlukan Persetujuan

Beberapa skema kebijakan menetapkan 'notices' nilai-nilai tertentu dari suatu {i>field<i} yang membutuhkan pengakuan.

Contoh kebijakan 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"
}

Pada contoh di atas, menetapkan nilai kolom pluginVmAllowed ke true adalah yang terkait dengan pemberitahuan yang berisi acknowledgementRequired. Untuk benar-benar tetapkan nilai kolom ini ke true, Anda harus mengirim permintaan yang menentukan kolom konfirmasi ackNoticeForPluginVmAllowedSetToTrue ke true, jika tidak, Anda akan mendapatkan pesan {i>error<i} dalam permintaan Anda.

Dalam contoh ini, Anda harus mengirim permintaan perubahan batch berikut.

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"

Menetapkan Kebijakan File

Beberapa kebijakan memiliki kolom yang diketikkan UploadedFile, Anda harus mengupload yang ingin Anda tetapkan sebagai nilai kebijakan tersebut ke server API, untuk mendapatkan URL untuk digunakan dalam permintaan BatchModify.

Dalam contoh ini, kita akan menyetel chrome.users.Wallpaper dengan mengupload JPEG.

Mengupload file

Permintaan

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"

Respons

Respons yang berhasil harus berisi URL untuk mengakses file:

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

Menetapkan kebijakan file

Permintaan

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"

Respons

Respons berhasil harus kosong.

{}