ตัวอย่างโค้ด

คำขอด้านล่างแสดงการจัดการนโยบายด้วย Policy API ก่อนคุณ โปรดอ่านภาพรวมของ Chrome Policy API เพื่อดูข้อมูลสรุประดับสูงสำหรับฟีเจอร์ของ 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= ในสคีมา คำขอรายการบริการ เช่น ถ้าต้องการค้นหาสคีมาที่มี คำว่า "printer" ในชื่อและคำว่า "devices" ในคำอธิบายที่คุณอาจนำไปใช้ ค่าต่อไปนี้ลงในตัวกรอง name=printers AND description=devices

ดูวิธีแสดงรายการสคีมานโยบาย

ส่งคำขอ

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

คำตอบ

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

รับสคีมาเฉพาะ

ในผลลัพธ์ข้างต้น เราจะดูรายการสคีมานโยบายที่รองรับ แต่ละสคีมามี ช่อง name ที่ระบุสคีมา ในอนาคต เมื่อคุณทราบ คุณสามารถอ่านสคีมาเฉพาะโดยตรงได้โดยอ้างอิง ใน URL คำขอ

มาดูตัวอย่างสคีมา chrome.printers.AllowForUsers กัน

ส่งคำขอ

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

คำตอบ

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

การตอบกลับสคีมานโยบายด้านบนอธิบายสคีมาของ นโยบาย chrome.printers.AllowForUsers ช่องประกาศ additionalTargetKeyNames ช่องนี้อธิบายว่านโยบายกำหนดให้ระบุคีย์/ค่าเพิ่มเติม เมื่อต้องจัดการกับนโยบายนี้ โดยเฉพาะอย่างยิ่ง สำหรับนโยบายนี้ เราจำเป็นต้อง ให้ตัวระบุเครื่องพิมพ์

อ่านค่านโยบาย

ลองอ่านนโยบาย chrome.printers.AllowForUsers สำหรับเครื่องพิมพ์บางเครื่องกัน ประกาศโดยใช้ช่อง additionalTargetKeys เพื่อระบุรหัสเครื่องพิมพ์ในคำขอ

คุณอ่านนโยบายจากหน่วยขององค์กรหรือกลุ่มได้

ในคำตอบ ให้สังเกตช่อง sourceKey ซึ่งระบุ หน่วยขององค์กรหรือกลุ่มที่มีมูลค่าของนโยบาย สำหรับ อาจดำเนินการต่างๆ ต่อไปนี้กับหน่วยขององค์กรได้

  • หากหน่วยขององค์กรต้นทางตรงกับหน่วยขององค์กรที่ระบุไว้ใน หมายความว่านโยบายนี้จะใช้ภายในหน่วยขององค์กรนี้
  • หากหน่วยขององค์กรต้นทางแตกต่างจากหน่วยขององค์กรที่ระบุใน ก็หมายความว่านโยบายนั้นรับช่วงมาจากองค์กรต้นทาง หน่วย
  • หากไม่มี sourceKey หรือการตอบกลับว่างเปล่า แสดงว่านโยบาย ไม่ได้กำหนด สำหรับลูกค้า และมีค่าระบบเริ่มต้น

สำหรับ Groups นั้น sourceKey จะเป็นเหมือนกับ Group ที่ต่างจากเดิมเสมอ ที่ระบุไว้ในคำขอ

ตัวอย่างต่อไปนี้เป็นตัวอย่างสำหรับหน่วยขององค์กร คำขอแบบกลุ่มจะเป็น ตัวเดียวกันยกเว้น 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 มี 1 ฟิลด์ชื่อ 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 จะมี 2 เวอร์ชัน เวอร์ชันต้นฉบับยอมรับเฉพาะสตริงเป็นอินพุตสำหรับ 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 จะช่วยให้คุณแสดงรายการลำดับความสำคัญของ Groups สำหรับแอปได้

ลำดับของรหัสกลุ่มที่แสดงผลจะระบุลำดับความสำคัญที่ การตั้งค่านี้จะมีผลกับแอป รหัสภายหลัง จะ ถูกลบล้างโดยนโยบายที่มีรหัสอยู่ก่อนหน้าในรายการ

โปรดทราบว่าลำดับความสำคัญของกลุ่มสูงกว่าลำดับความสำคัญของหน่วยขององค์กร

ในคำขอนี้ เราจะแสดงผลการเรียงลำดับตามลำดับความสำคัญสำหรับ "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 ช่วยให้คุณอัปเดตการจัดลำดับความสำคัญของ Groups สำหรับแอปได้

ลำดับของรหัสกลุ่มในคำขอระบุลำดับความสำคัญที่ การตั้งค่านี้จะมีผลกับแอป รหัสภายหลัง จะ ถูกลบล้างโดยนโยบายที่มีรหัสอยู่ก่อนหน้าในรายการ คำขอต้อง ระบุรหัสกลุ่มทุกรายการที่ใช้ในแอปอยู่ในปัจจุบัน

โปรดทราบว่าลำดับความสำคัญของกลุ่มสูงกว่าลำดับความสำคัญของหน่วยขององค์กร

ในคำขอนี้ เรากำลังตั้งค่าลำดับความสำคัญของ "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 คุณจะต้องอัปโหลด ที่คุณต้องการตั้งค่าเป็นค่าของนโยบายเหล่านั้นให้กับเซิร์ฟเวอร์ API เพื่อ เพื่อรับ URL เพื่อใช้ในคำขอ BatchModify

ในตัวอย่างนี้ เราจะตั้งค่า chrome.users.Wallpaper โดยการอัปโหลด ไฟล์ JPEG

อัปโหลดไฟล์

ส่งคำขอ

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

คำตอบ

การตอบกลับที่สำเร็จควรมี URL เพื่อเข้าถึงไฟล์ ดังนี้

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

ตั้งค่านโยบายไฟล์

ส่งคำขอ

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

คำตอบ

การตอบกลับที่สำเร็จควรเว้นว่างไว้

{}