Contoh kode

Permintaan di bawah ini menggambarkan pengelolaan kebijakan dengan Policy API. Sebelum memulai, pastikan Anda meninjau Ringkasan Chrome Policy API untuk mengetahui ringkasan lengkap fitur API ini.

Semua permintaan yang ditampilkan di bawah ini menggunakan variabel berikut:

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

Mencantumkan skema untuk kebijakan printer

Untuk mencantumkan skema yang hanya terkait dengan kebijakan printer, kami akan menerapkan parameter 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 permintaan daftar Schema Service. Misalnya, jika Anda ingin menelusuri skema yang memiliki kata "printer" dalam nama dan kata "devices" dalam deskripsinya, 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

Pada hasil di atas, kita akan melihat daftar skema kebijakan yang didukung. Setiap skema memiliki kolom name yang mengidentifikasi skema. Di masa mendatang, setelah mengetahui nama skema, Anda dapat membaca skema tertentu secara langsung dengan merujuk ke nama skema tersebut di 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 saat menangani kebijakan ini. Secara khusus, untuk kebijakan ini kita perlu memberikan ID printer.

Membaca nilai kebijakan

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

Anda dapat membaca kebijakan dari Unit Organisasi atau Grup.

Dalam respons, perhatikan kolom sourceKey, yang menentukan Unit Organisasi atau Grup tempat nilai kebijakan berasal. Untuk Unit Organisasi, ada beberapa kemungkinan berikut:

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

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

Contoh berikut adalah untuk Unit Organisasi. Permintaan Grup akan sama kecuali untuk targetResource, yang akan memiliki "groups/" bukan "orgunits/" 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 dapat diambil dengan menghilangkan additionalTargetKeys dari permintaan. Misalnya, jika additionalTargetKeys dihapus dari permintaan di atas, permintaan tersebut akan menampilkan semua printer dalam resource target yang ditentukan.

Baca beberapa kebijakan

Memberikan namespace skema dengan tanda bintang (misalnya, chrome.printers.*) memungkinkan Anda membaca nilai untuk semua kebijakan dalam namespace ini di Unit Organisasi atau Grup tertentu. Pelajari Skema Kebijakan lebih lanjut.

Contoh berikut adalah untuk Unit Organisasi. Permintaan Grup akan sama kecuali untuk targetResource, yang akan memiliki "groups/" bukan "orgunits/" 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 khusus ini, kita hanya memiliki satu kolom, tetapi kebijakan lainnya dapat berisi beberapa kolom.

Dalam permintaan perubahan, kita perlu menentukan updateMask. {i>Update mask<i} mencantumkan semua kolom yang ingin kita ubah. Jika kebijakan sudah diterapkan secara lokal di Unit Organisasi, kolom yang tidak tercantum melalui update mask tidak akan tersentuh. Jika kebijakan belum diterapkan secara lokal di Unit Organisasi, dan semua kolom yang tidak tercantum melalui update mask akan menyalin nilainya dari Unit Organisasi induk jika sesuai, dan seluruh kebijakan akan diterapkan secara lokal.

Contoh berikut adalah untuk Unit Organisasi. Permintaan grup sama kecuali untuk targetResource, yang akan mencantumkan "groups/" bukan "orgunits/" sebelum ID. Di sini kami 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 yang berhasil kosong.

{}

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

Misalnya, untuk menetapkan URL sumber bagi 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 yang berhasil kosong.

{}

Untuk semua kebijakan yang berisi kolom NullableDuration, ada dua versi. Versi asli hanya menerima string sebagai input untuk NullableDuration dan kini tidak digunakan lagi. Gunakan versi V2 yang mengganti jenis durasi dengan input numerik. Misalnya, untuk menetapkan durasi sesi pengguna maksimum ke 10 menit, kita perlu mengirim 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 yang berhasil kosong.

{}

Mengubah beberapa kebijakan sekaligus

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

Dalam contoh ini, kami akan memodifikasi dua kebijakan berbeda (chrome.printers.AllowForDevices dan chrome.printers.AllowForUsers) dalam permintaan yang sama untuk printer yang sama.

Contoh berikut adalah untuk Unit Organisasi. Permintaan Grup akan sama kecuali untuk targetResource, yang akan memiliki "groups/" bukan "orgunits/" 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 yang berhasil kosong.

{}

Mewarisi nilai kebijakan di Unit Organisasi

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

Metode batchInherit juga memungkinkan Anda mengirim beberapa permintaan pewarisan kebijakan secara bersamaan. Namun, tidak semua kebijakan dapat dikelompokkan bersama. Untuk mengetahui 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 yang berhasil kosong.

{}

Menghapus nilai kebijakan di Grup

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

Metode batchDelete juga memungkinkan Anda mengirim beberapa permintaan penghapusan kebijakan secara bersamaan. Namun, tidak semua kebijakan dapat dikelompokkan bersama. Untuk mengetahui 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 yang berhasil kosong.

{}

Membuat daftar urutan prioritas untuk Grup

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

Urutan ID Grup yang ditampilkan menunjukkan prioritas yang setelannya akan diterapkan untuk aplikasi; kebijakan ID berikutnya akan diganti oleh kebijakan yang ID-nya ada di bagian awal daftar.

Perlu diketahui bahwa prioritas Grup lebih tinggi daripada prioritas Unit Organisasi.

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

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

Metode updateGroupPriorityOrdering memungkinkan Anda memperbarui urutan prioritas Grup untuk aplikasi.

Urutan ID Grup dalam permintaan menunjukkan prioritas penerapan setelannya untuk aplikasi; kebijakan ID berikutnya akan diganti oleh kebijakan yang ID-nya sudah ada sebelumnya dalam daftar. Permintaan harus menyertakan setiap ID Grup yang saat ini diterapkan di aplikasi.

Perlu diketahui bahwa prioritas Grup lebih tinggi daripada prioritas Unit Organisasi.

Dalam permintaan ini, kita menetapkan pengurutan prioritas untuk aplikasi Pengguna Chrome "exampleapp".

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 yang berhasil kosong.

{}

Menangani Kebijakan yang Memerlukan Konfirmasi

Beberapa skema kebijakan menentukan 'pemberitahuan' untuk nilai tertentu pada kolom tertentu yang memerlukan konfirmasi.

Contoh untuk 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, penetapan nilai kolom pluginVmAllowed ke true dikaitkan dengan pemberitahuan yang memiliki acknowledgementRequired. Untuk menetapkan nilai kolom ini dengan benar ke true, Anda harus mengirim permintaan yang menentukan kolom konfirmasi ackNoticeForPluginVmAllowedSetToTrue ke true. Jika tidak, Anda akan mendapatkan error dalam permintaan.

Dalam contoh ini, Anda perlu 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 diketik sebagai UploadedFile, Anda harus mengupload file yang ingin ditetapkan sebagai nilai kebijakan tersebut ke server API, untuk mendapatkan URL yang akan digunakan dalam permintaan BatchModify.

Dalam contoh ini, kita akan menyetel chrome.users.Wallpaper dengan mengupload file 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 akan 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 yang berhasil harus kosong.

{}