Kod örnekleri

Aşağıdaki isteklerde, Policy API ile politika yönetimi gösterilmektedir. Başlamadan önce, bu API'nin özelliklerinin üst düzey bir özeti için Chrome Policy API'ye Genel Bakış sayfasını incelediğinizden emin olun.

Aşağıda sunulan tüm istekler aşağıdaki değişkenleri kullanır:

  • $TOKEN - OAuth 2 jetonu
  • $CUSTOMER - Müşterinin kimliği veya değişmez değer my_customer

Yazıcı politikaları için şemaları listeleme

Yalnızca yazıcılarla ilgili politikaları ilgilendiren şemaları listelemek için Şema Hizmeti listesi isteğine filter parametresi uygulayacağız. pageSize ve pageToken parametrelerini kullanarak sonucun sayfalara ayrılmasını kontrol edebilirsiniz.

İstek

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

Yanıt

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

Şema arayın

Şema hizmeti listesi isteğinde filter= parametresini kullanarak karmaşık arama sorguları oluşturabilirsiniz. Örneğin, adında "yazıcı" ve açıklamasında "cihazlar" kelimesi bulunan şemaları aramak istiyorsanız name=printers AND description=devices filtresine aşağıdaki değeri uygulayabilirsiniz.

Politika şemalarını listelemeyi öğrenin.

İstek

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

Yanıt

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

Belirli bir şemayı alma

Yukarıdaki sonuçta, desteklenen politika şemalarının listesini görüyoruz. Her şemada, şemayı tanımlayan bir name alanı bulunur. Gelecekte, şema adını öğrendikten sonra, istek URL'sinde şema adına başvurarak ilgili şemayı doğrudan okuyabilirsiniz.

chrome.printers.AllowForUsers şemasına bir örnek inceleyelim.

İstek

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

Yanıt

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

Yukarıdaki politika şeması yanıtı, chrome.printers.AllowForUsers politikasının şemasını açıklar. Bildirim alanı additionalTargetKeyNames. Bu alan, politikanın bu politikayla çalışırken ek anahtar/değer çifti sağlanmasını gerektirdiğini açıklar. Özellikle, bu politika için her zaman yazıcı tanımlayıcısını sağlamamız gerekir.

Politika değeri okuma

Belirli bir yazıcı için chrome.printers.AllowForUsers politikasını okuyalım. İstekte yazıcı kimliğini belirtmek için additionalTargetKeys alanının kullanıldığına bildirim.

Politikayı bir kuruluş biriminden veya gruptan okuyabilirsiniz.

Yanıtta, politika değerinin hangi Kuruluş Birimi veya Gruptan geldiğini belirten sourceKey alanına dikkat edin. Kuruluş Birimleri için aşağıdaki olasılıklar vardır:

  • Kaynak Kuruluş Birimi bir istekte belirtilen Kuruluş Birimi ile aynıysa bu, politikanın bu Kuruluş Biriminde yerel olarak uygulandığı anlamına gelir.
  • Kaynak Kuruluş Birimi bir istekte belirtilen Kuruluş Biriminden farklıysa bu, politikanın kaynak Kuruluş Biriminden devralındığı anlamına gelir.
  • sourceKey yoksa veya yanıt boşsa bu politika, müşteri için ayarlanmadığı ve varsayılan sistem değerine sahip olduğu anlamına gelir.

Gruplar için sourceKey her zaman istekte belirtilen Grupla aynı olur.

Aşağıdaki örnek bir kuruluş birimi içindir. targetResource hariç Grup isteği aynı olur. targetResource ile kimlikten önce "orgunits/" yerine "groups/" bulunur.

İstek

  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"

Yanıt

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

Hedef kaynaklardaki tüm varlıkların, istekten additionalTargetKeys çıkarılarak getirilebileceğini unutmayın. Örneğin additionalTargetKeys yukarıdaki istekten çıkarılırsa belirtilen hedef kaynaktaki tüm yazıcıları döndürür.

Birden fazla politika okuma

Yıldızla bir şema ad alanı sağlama (ör. chrome.printers.*) belirli bir Kuruluş Birimi veya Grup'ta bu ad alanı altında bulunan tüm politikaların değerlerini okumanıza olanak tanır. Politika Şemaları hakkında daha fazla bilgi edinin.

Aşağıdaki örnek bir kuruluş birimi içindir. targetResource hariç Grup isteği aynı olur. targetResource ile kimlikten önce "orgunits/" yerine "groups/" bulunur.

İstek

  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"

Yanıt

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

Politika değerini değiştir

Politika şeması yanıtında görüldüğü gibi, chrome.printers.AllowForUsers politikasının allowForUsers adlı bir alanı vardır. Bu alan boole türünde. Politikanın örnek değeri {allowForUsers: false} veya {allowForUsers: true} olabilir. Bu örnekte yalnızca bir alanımız var, ancak diğer politikalar birden fazla alan içerebilir.

Değişiklik isteklerinde bir updateMask belirtmemiz gerekir. Güncelleme maskesi, değiştirmek istediğimiz tüm alanları listeler. Politika, Kuruluş Biriminde önceden yerel olarak uygulandıysa güncelleme maskesi aracılığıyla listelenmeyen alanlara dokunulmaz. Politika, Kuruluş Birimi'nde yerel olarak uygulanmadıysa ve güncelleme maskesi aracılığıyla listelenmeyen tüm alanlar, uygun durumlarda kendi değerlerini üst kuruluş biriminden kopyalar ve politikanın tamamı yerel olarak uygulanır.

Aşağıdaki örnekler bir Kuruluş Birimi içindir. targetResource hariç grup istekleri aynıdır. Hedef kaynak kimlikten önce "orgunits/" yerine "groups/" eklenir. Burada, 04fatzly4jbjho9 Kuruluş Birimi Kimliğindeki kullanıcılar için 0gjdgxs208tpef yazıcısına izin vermeyeceğiz:

İstek

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"

Yanıt

Başarılı bir yanıt boş.

{}

Listeler veya diziler gibi birden çok değerli alanlar "LABEL_REPEATED" etiketiyle işaretlenir. Birden çok değer içeren alanları doldurmak için aşağıdaki JSON dizisi biçimini kullanın: [value1, value2, value3, ...].

Örneğin, uygulama ve uzantı paketlerinin kaynak URL'lerini "test1.com", "test2.com" ve "test3.com" olarak ayarlamak için aşağıdaki isteği göndermemiz gerekir:

İstek

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"

Yanıt

Başarılı bir yanıt boş.

{}

NullableDuration alanları içeren tüm politikaların iki sürümü vardır. Orijinal sürüm, yalnızca NullableDuration için dizeyi kabul eder ve kullanımdan kaldırılmıştır. Lütfen süre türünü sayısal bir girişle değiştiren V2 sürümünü kullanın. Örneğin, maksimum kullanıcı oturumu uzunluğunu 10 dakika olarak ayarlamak için aşağıdaki isteği göndermemiz gerekir:

İstek

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"

Yanıt

Başarılı bir yanıt boş.

{}

Aynı anda birden çok politikayı değiştirme

batchModify yöntemi, aynı anda birden çok politika değişikliği göndermenize olanak tanır. Ancak tüm politikalar birlikte toplu olarak işlenemez. Daha fazla bilgi için Toplu güncelleme politikaları bölümüne bakın.

Bu örnekte, aynı istek kapsamında aynı yazıcı için iki farklı politikayı (chrome.printers.AllowForDevices ve chrome.printers.AllowForUsers) değiştireceğiz.

Aşağıdaki örnek bir kuruluş birimi içindir. targetResource hariç Grup isteği aynı olur. targetResource ile kimlikten önce "orgunits/" yerine "groups/" bulunur.

İstek

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"

Yanıt

Başarılı bir yanıt boş.

{}

Bir Kuruluş Biriminde politika değerini devral

batchInherit yöntemi, bir Kuruluş Birimindeki politikanın durumunu "yerel olarak uygulandı" yerine "devralınan" olarak değiştirmenize olanak tanır. Yerel değerler temizlenir ve politika, uygun durumlarda bir üst kuruluş birimindeki değerleri devralır.

batchInherit yöntemi, aynı anda birden fazla politika devralma isteği göndermenize de olanak tanır. Ancak tüm politikalar birlikte toplu olarak işlenemez. Daha fazla bilgi için Toplu güncelleme politikaları bölümüne bakın.

İstek

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"

Yanıt

Başarılı bir yanıt boş.

{}

Bir Gruptaki politika değerini silme

batchDelete yöntemi, bir politikayı gruptan silmenize olanak tanır. Yerel değerler temizlenecek.

batchDelete yöntemi, aynı anda birden fazla politika silme isteği göndermenize de olanak tanır. Ancak tüm politikalar birlikte toplu olarak işlenemez. Daha fazla bilgi için Toplu güncelleme politikaları bölümüne bakın.

İstek

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"

Yanıt

Başarılı bir yanıt boş.

{}

Bir grubun öncelik sıralamasını listeleme

listGroupPriorityOrdering yöntemi, bir uygulama için Gruplar'ın öncelik sıralamasını listelemenize olanak tanır.

Döndürülen Grup Kimliklerinin sırası, ayarlarının uygulamaya uygulanacağı önceliği belirtir. Sonraki kimliklerin politikaları, kimlikleri listede daha önce yer alan politikalar tarafından geçersiz kılınır.

Grup önceliklerinin Kuruluş Birimi önceliklerinden yüksek olduğunu unutmayın.

Bu istekte, "exampleapp" Chrome Kullanıcı uygulamasının öncelik sıralamasını iade ediyoruz.

İstek

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"

Yanıt

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

Bir grubun öncelik sıralamasını güncelleme

updateGroupPriorityOrdering yöntemi, bir uygulama için Gruplar'ın öncelik sıralamasını güncellemenize olanak tanır.

İstekteki Grup Kimliklerinin sırası, ayarlarının uygulamaya uygulanacağı önceliği belirtir. Sonraki kimliklerin politikaları, kimlikleri listede daha önce yer alan politikalar tarafından geçersiz kılınır. İstek, uygulamada halihazırda uygulanmakta olan her Grup Kimliğini içermelidir.

Grup önceliklerinin Kuruluş Birimi önceliklerinden yüksek olduğunu unutmayın.

Bu istekte, "exampleapp" Chrome Kullanıcı uygulaması için öncelik sıralamasını ayarlıyoruz.

İstek

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"

Yanıt

Başarılı bir yanıt boş.

{}

Onay Gerektiren Politikaları İşleme

Bazı politika şemaları, belirli bir alanın onay gerektiren belirli değerleri için "bildirimleri" belirtir.

chrome.users.PluginVmAllowd politikası için örnek:

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

Yukarıdaki örnekte, pluginVmAllowed alanının değerinin true olarak ayarlanması, acknowledgementRequired içeren bir bildirimle ilişkilendirilir. Bu alan değerini true doğru bir şekilde ayarlamak için ackNoticeForPluginVmAllowedSetToTrue onay alanını belirten bir isteği true adresine göndermeniz gerekir. Aksi takdirde isteğinizde hata alırsınız.

Bu örnekte, aşağıdaki toplu değişiklik isteğini göndermeniz gerekir.

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"

Dosya Politikalarını Ayarlama

Bazı politikalarda UploadedFile olarak yazılan alanlar vardır. BatchModify isteklerinde kullanılacak bir URL edinmek için bu politikaların değeri olarak ayarlamak istediğiniz dosyayı API sunucusuna yüklemeniz gerekir.

Bu örnekte, chrome.users.Wallpaper değerini bir JPEG dosyası yükleyerek ayarlayacağız.

Dosyayı yükleme

İstek

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"

Yanıt

Başarılı bir yanıt, dosyaya erişmek için gereken URL'yi içermelidir:

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

Dosya politikasını belirleme

İstek

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"

Yanıt

Başarılı bir yanıt boş olmalıdır.

{}