Przykładowe fragmenty kodu

Żądania poniżej pokazują zarządzanie zasadami za pomocą interfejsu Policy API. Zanim zaczniesz, przeczytaj omówienie interfejsu Chrome Policy API, gdzie znajdziesz ogólne omówienie funkcji tego interfejsu.

Wszystkie żądania przedstawione poniżej korzystają z tych zmiennych:

  • $TOKEN – token OAuth 2
  • $CUSTOMER – identyfikator klienta lub literał my_customer.

Wyświetlenie listy schematów zasad dotyczących drukarek

Aby wyświetlić listę schematów, które dotyczą tylko zasad dotyczących drukarek, zastosujemy parametr filter do żądania listy usług schematów. Podział wyniku na strony możesz kontrolować za pomocą parametrów pageSize i pageToken.

Prośba

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

Odpowiedź

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

Wyszukaj schematy

Możesz tworzyć złożone zapytania za pomocą parametru filter= w żądaniu listy usługi schematów. Jeśli np. chcesz wyszukać schematy, które mają w nazwie słowo „drukarka” i słowo „urządzenia”, możesz zastosować tę wartość do filtra name=printers AND description=devices.

Dowiedz się, jak utworzyć listę schematów zasad.

Prośba

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

Odpowiedź

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

Pobieranie konkretnego schematu

W wyniku powyżej znajduje się lista obsługiwanych schematów zasad. Każdy schemat ma pole name, które identyfikuje schemat. W przyszłości, gdy poznasz nazwę schematu, możesz odczytać konkretny schemat, odwołując się do jego nazwy w adresie URL żądania.

Przeanalizujmy przykład schematu chrome.printers.AllowForUsers.

Prośba

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

Odpowiedź

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

Powyższa odpowiedź schematu zasad opisuje schemat zasady chrome.printers.AllowForUsers. Pole powiadomienia additionalTargetKeyNames. To pole wyjaśnia, że zasady wymagają podania dodatkowych kluczy/wartości. W przypadku tej zasady zawsze musimy podać identyfikator drukarki.

Odczytywanie wartości zasady

Przeczytajmy zasady chrome.printers.AllowForUsers obowiązujące w przypadku konkretnej drukarki. Zwróć uwagę, że pole additionalTargetKeys służy do określenia identyfikatora drukarki w żądaniu.

Zasady możesz odczytać z jednostki organizacyjnej lub grupy.

W odpowiedzi zwróć uwagę na pole sourceKey, które określa, z której jednostki organizacyjnej lub grupy pochodzi wartość zasady. W przypadku jednostek organizacyjnych dostępne są te możliwości:

  • Jeśli źródłowa jednostka organizacyjna jest taka sama jak jednostka organizacyjna podana w żądaniu, oznacza to, że zasada jest stosowana lokalnie w tej jednostce organizacyjnej.
  • Jeśli źródłowa jednostka organizacyjna jest inna niż jednostka organizacyjna podana w żądaniu, oznacza to, że zasada jest dziedziczona ze źródłowej jednostki organizacyjnej.
  • Jeśli nie ma parametru sourceKey lub odpowiedź jest pusta, oznacza to, że zasada nie została ustawiona dla klienta i ma domyślną wartość systemową.

W przypadku grup wartość sourceKey będzie zawsze taka sama jak grupa określona w żądaniu.

Ten przykład dotyczy jednostki organizacyjnej. Żądanie dotyczące grupy byłoby takie samo, ale z wyjątkiem zasobu targetResource, który przed identyfikatorem miałby ciąg „groups/” zamiast „orgunits/”.

Prośba

  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"

Odpowiedź

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

Pamiętaj, że wszystkie encje w zasobach docelowych można pobrać, pomijając w żądaniu parametr additionalTargetKeys. Jeśli na przykład pominiesz właściwość additionalTargetKeys w powyższym żądaniu, zwrócone zostaną wszystkie drukarki w określonym zasobie docelowym.

Przeczytaj wiele zasad

Podanie przestrzeni nazw schematu gwiazdką (np. chrome.printers.*) umożliwia odczytywanie wartości wszystkich zasad w tej przestrzeni nazw w określonej jednostce organizacyjnej lub grupie. Dowiedz się więcej o schematach zasad.

Ten przykład dotyczy jednostki organizacyjnej. Żądanie dotyczące grupy byłoby takie samo, ale z wyjątkiem zasobu targetResource, który przed identyfikatorem miałby ciąg „groups/” zamiast „orgunits/”.

Prośba

  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"

Odpowiedź

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

Zmień wartość zasady

Jak widać w odpowiedzi schematu zasad, zasada chrome.printers.AllowForUsers zawiera 1 pole o nazwie allowForUsers. To pole jest wartością logiczną. Przykładowa wartość zasady może mieć wartość {allowForUsers: false} lub {allowForUsers: true}. W tym przypadku mamy tylko jedno pole, ale inne zasady mogą zawierać wiele pól.

W żądaniach modyfikacji musimy określić updateMask. Zaktualizuj maskę, podając wszystkie pola, które chcesz zmodyfikować. Jeśli zasada została już zastosowana lokalnie w jednostce organizacyjnej, pola, które nie są wymienione w masce aktualizacji, pozostaną nienaruszone. Jeśli zasada nie została jeszcze zastosowana lokalnie w jednostce organizacyjnej, a wszystkie pola nieuwzględnione w masce aktualizacji w razie potrzeby skopiują swoje wartości z nadrzędnej jednostki organizacyjnej, a całe zasady zostaną zastosowane lokalnie.

Poniższe przykłady dotyczą jednostki organizacyjnej. Żądania grupowe są takie same z wyjątkiem elementu targetResource, który przed identyfikatorem miałby przedrostek „groups/” zamiast „orgunits/”. W tym miejscu nie zablokujemy drukarki 0gjdgxs208tpef użytkownikom w jednostce organizacyjnej o identyfikatorze 04fatzly4jbjho9:

Prośba

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"

Odpowiedź

Pomyślna odpowiedź jest pusta.

{}

Pola o wielu wartościach, takie jak listy lub tablice, są oznaczone etykietą „LABEL_REPEATED”. Aby wypełnić pola o wielu wartościach, użyj tego formatu tablicy JSON: [value1, value2, value3, ...].

Aby na przykład ustawić adresy URL źródeł dla pakietów aplikacji i rozszerzeń na „test1.com”, „test2.com” i „test3.com”, musimy wysłać to żądanie:

Prośba

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"

Odpowiedź

Pomyślna odpowiedź jest pusta.

{}

Wszystkie zasady, które zawierają pola NullableDuration, mają 2 wersje. W pierwotnej wersji jako dane wejściowe dla wartości NullableDuration jest akceptowany tylko ciąg znaków i została ona wycofana. Użyj wersji 2, która zastępuje typ czasu trwania danymi liczbowymi. Aby na przykład ustawić maksymalny czas trwania sesji użytkownika na 10 minut, musimy wysłać to żądanie:

Prośba

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"

Odpowiedź

Pomyślna odpowiedź jest pusta.

{}

Modyfikowanie wielu zasad jednocześnie

Metoda batchModify umożliwia wysyłanie wielu modyfikacji zasad jednocześnie. Jednak nie wszystkie zasady można łączyć w grupy. Więcej informacji znajdziesz w artykule Zasady aktualizacji zbiorczej.

W tym przykładzie modyfikujemy w ramach tego samego żądania 2 różne zasady (chrome.printers.AllowForDevices i chrome.printers.AllowForUsers) dotyczące tej samej drukarki.

Ten przykład dotyczy jednostki organizacyjnej. Żądanie dotyczące grupy byłoby takie samo, ale z wyjątkiem zasobu targetResource, który przed identyfikatorem miałby ciąg „groups/” zamiast „orgunits/”.

Prośba

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"

Odpowiedź

Pomyślna odpowiedź jest pusta.

{}

Dziedziczenie wartości zasady w jednostce organizacyjnej

Metoda batchInherit pozwala zmienić stan zasady w jednostce organizacyjnej z „zastosowana lokalnie” na „dziedziczony”. Wartości lokalne zostaną wyczyszczone, a zasada odziedziczy wartości z nadrzędnej jednostki organizacyjnej (w stosownych przypadkach).

Metoda batchInherit umożliwia też wysyłanie wielu żądań dziedziczenia zasad jednocześnie. Jednak nie wszystkie zasady można łączyć w grupy. Więcej informacji znajdziesz w artykule Zasady aktualizacji zbiorczej.

Prośba

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"

Odpowiedź

Pomyślna odpowiedź jest pusta.

{}

Usuwanie wartości zasady z grupy

Metoda batchDelete umożliwia usunięcie zasady z grupy. Wartości lokalne zostaną wyczyszczone.

Metoda batchDelete umożliwia też wysyłanie wielu żądań usunięcia zasad jednocześnie. Jednak nie wszystkie zasady można łączyć w grupy. Więcej informacji znajdziesz w artykule Zasady aktualizacji zbiorczej.

Prośba

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"

Odpowiedź

Pomyślna odpowiedź jest pusta.

{}

Wyświetlanie kolejności priorytetów dla grupy

Metoda listGroupPriorityOrdering umożliwia uporządkowanie priorytetowych grup aplikacji w przypadku danej aplikacji.

Kolejność zwracanych identyfikatorów grup wskazuje priorytet, w jakim ich ustawienia zostaną zastosowane do aplikacji. Późniejsze zasady dotyczące identyfikatorów zostaną zastąpione przez zasady, których identyfikatory znajdują się wcześniej na liście.

Pamiętaj, że priorytety grup są wyższe niż priorytety jednostki organizacyjnej.

W tym żądaniu zwracamy kolejność priorytetów aplikacji użytkownika Chrome „przykładowa aplikacja”.

Prośba

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"

Odpowiedź

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

Aktualizowanie kolejności priorytetów dla grupy

Metoda updateGroupPriorityOrdering umożliwia aktualizowanie kolejności grup dyskusyjnych według priorytetu aplikacji.

Kolejność identyfikatorów grup w żądaniu wskazuje priorytet, w którym ich ustawienia zostaną zastosowane do aplikacji. Późniejsze zasady dotyczące identyfikatorów zostaną zastąpione przez zasady, których identyfikatory znajdują się wcześniej na liście. Żądanie musi zawierać każdy identyfikator grupy, który jest obecnie stosowany w aplikacji.

Pamiętaj, że priorytety grup są wyższe niż priorytety jednostki organizacyjnej.

W tym żądaniu ustalamy kolejność priorytetów aplikacji użytkownika Chrome „przykładowa aplikacja”.

Prośba

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"

Odpowiedź

Pomyślna odpowiedź jest pusta.

{}

Zasady postępowania, które wymagają potwierdzenia

Niektóre schematy zasad określają „powiadomienia” w przypadku pewnych wartości konkretnego pola, które wymagają potwierdzenia.

Przykład zasady 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"
}

W tym przykładzie ustawienie w polu pluginVmAllowed wartości true jest powiązane z powiadomieniem zawierającym acknowledgementRequired. Aby prawidłowo ustawić wartość tego pola na true, musisz wysłać do true żądanie z polem potwierdzenia ackNoticeForPluginVmAllowedSetToTrue. W przeciwnym razie w żądaniu pojawi się błąd.

W tym przykładzie należy wysłać to żądanie modyfikacji zbiorczej.

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"

Ustawianie zasad dotyczących plików

Niektóre zasady zawierają pola wpisane jako UploadedFile. Aby uzyskać adres URL do użycia w żądaniach BatchModify, musisz przesłać na serwer API plik, który chcesz ustawić jako wartość tych zasad.

W tym przykładzie ustawimy chrome.users.Wallpaper, przesyłając plik JPEG.

Przesyłanie pliku

Prośba

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"

Odpowiedź

Pomyślna odpowiedź powinna zawierać adres URL umożliwiający dostęp do pliku:

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

Konfigurowanie zasady dotyczącej plików

Prośba

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"

Odpowiedź

Pomyślna odpowiedź powinna być pusta.

{}