Przykładowe fragmenty kodu

Poniższe żądania ilustrują zarządzanie zasadami za pomocą interfejsu Policy API. Przed Tobą zapoznaj się z omówieniem interfejsu Chrome Policy API, aby uzyskać ogólne podsumowanie funkcji tego interfejsu API.

Wszystkie przedstawione poniżej żądania używają następujących zmiennych:

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

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

Aby wyświetlić schematy, które dotyczą tylko zasad dotyczących drukarek, zastosujemy filter do żądania listy usług schematu. Możesz kontrolować podział wynik za pomocą parametrów pageSize i pageToken.

Żądanie

  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 schemacie Żądanie listy usług. Jeśli na przykład chcesz wyszukać schematy zawierające słowo „drukarka” w nazwie i słowie „urządzenia” w opisie, który możesz zastosować tę wartość do filtra name=printers AND description=devices.

Dowiedz się, jak wyświetlać listy schematów zasad.

Żądanie

  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 określonego schematu

W powyższym wyniku widzimy listę obsługiwanych schematów zasad. Każdy schemat ma pole name identyfikujące schemat. W przyszłości, gdy już wiesz, nazwy schematu, możesz go odczytać bezpośrednio, korzystając z nazwę schematu w adresie URL żądania.

Spójrzmy na przykład schematu chrome.printers.AllowForUsers.

Żądanie

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

Odpowiedź schematu zasad opisuje schemat Zasada chrome.printers.AllowForUsers. Pole powiadomienia additionalTargetKeyNames. To pole wyjaśnia, że zasada wymaga podania dodatkowych kluczy/par. w odniesieniu do tych zasad. W kontekście tej zasady zawsze musimy podaj identyfikator drukarki.

Odczytywanie wartości zasady

Przyjrzyjmy się zasadom chrome.printers.AllowForUsers dotyczącym konkretnej drukarki. Uwaga: pole additionalTargetKeys określa identyfikator drukarki w żądaniu.

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

Zwróć uwagę na pole sourceKey w odpowiedzi, które określa, Jednostka organizacyjna lub grupa, z której pochodzi wartość zasady. Dla: 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 oznacza, że zasada została zastosowana lokalnie w tej jednostce organizacyjnej.
  • Jeśli źródłowa jednostka organizacyjna jest inna niż jednostka organizacyjna podana w żądania, oznacza to, że zasada jest dziedziczona ze źródłowej organizacji Jednostka
  • Jeśli nie ma atrybutu sourceKey lub odpowiedź jest pusta, oznacza to, że zasada nie jest ustawiona dla klienta i ma domyślną wartość systemową.

W przypadku Grup dyskusyjnych klucz sourceKey będzie zawsze taki sam jak wartość Group, która była określone w żądaniu.

Poniższy przykład dotyczy jednostki organizacyjnej. Żądanie grupy wyglądałoby tak taki sam oprócz zasobu targetResource, który ma parametr „groups/” zamiast „jednostki organizacyjne/” przed identyfikatorem.

Żądanie

  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 additionalTargetKeys z prośby. Jeśli na przykład additionalTargetKeys zostałyby pominięte w powyższym żądaniu, spowoduje to zwrócenie wszystkich drukarek określony zasób docelowy.

Przeczytaj wiele zasad

Podaj przestrzeń nazw schematu za pomocą gwiazdki (np. chrome.printers.*) zezwala odczytuje wartości wszystkich zasad z danej przestrzeni nazw w określonym Jednostka organizacyjna lub grupa. Więcej informacji o Schematy zasad.

Poniższy przykład dotyczy jednostki organizacyjnej. Żądanie grupy wyglądałoby tak taki sam oprócz zasobu targetResource, który ma parametr „groups/” zamiast „jednostki organizacyjne/” przed identyfikatorem.

Żądanie

  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

Zgodnie z odpowiedzią schematu zasad zasada chrome.printers.AllowForUsers ma jedno pole o nazwie allowForUsers. To pole jest wartością logiczną. Przykład wartością zasady może być {allowForUsers: false} lub {allowForUsers: true} W tym przypadku mamy tylko jedno pole, inne zasady mogą zawierać wiele pól.

W żądaniach modyfikacji trzeba określić updateMask. Zaktualizuj listę masek pola, które mają być zmodyfikowane. Jeśli zasada była już stosowana lokalnie w Jednostka organizacyjna, pola, które nie są wymienione przez maskę aktualizacji, zostaną pozostają niezmienione. Jeśli zasada nie była wcześniej stosowana lokalnie w Jednostka organizacyjna i wszystkie pola, które nie są wymienione jako maska aktualizacji, zostaną w razie potrzeby skopiuj ich wartości z nadrzędnej jednostki organizacyjnej, a także a cała zasada zostanie zastosowana lokalnie.

Poniższe przykłady dotyczą jednostki organizacyjnej. Żądania grupowe to taki sam oprócz zasobu targetResource, który zawiera parametr „groups/” zamiast „jednostki organizacyjne/” przed identyfikatorem. Tutaj zablokujemy dostęp do drukarki 0gjdgxs208tpef za użytkownicy w jednostce organizacyjnej o identyfikatorze 04fatzly4jbjho9:

Żądanie

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 wielowartościowe, takie jak listy i tablice, są oznaczone symbolem „LABEL_REPEATED” . Aby wypełnić pola z wieloma wartościami, użyj następującego formatu tablicy JSON: [value1, value2, value3, ...]

Aby na przykład ustawić źródłowe adresy URL pakietów aplikacji i rozszerzeń jako „test1.com”, „test2.com” i „test3.com”, musimy wysłać następujące żądanie:

Żądanie

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, występują w dwóch wersjach. Pierwotna wersja akceptuje tylko ciąg znaków jako dane wejściowe dla NullableDuration i jest teraz wycofane. Użyj wersji V2, która zastępuje typ czasu trwania wprowadzania danych liczbowych. Aby na przykład ustawić maksymalną długość sesji użytkownika na 10 minut musimy wysłać następujące żądanie:

Żądanie

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

batchModify umożliwia wysłanie wielu modyfikacji zasad jednocześnie. Jednak nie wszystkie zasady można grupować. Aby dowiedzieć się więcej, zapoznaj się z sekcją Zbiorcze aktualizowanie zasad.

W tym przykładzie zmienimy w tym samym żądaniu dwa różne zasady (chrome.printers.AllowForDevices i chrome.printers.AllowForUsers) dla tej samej drukarki.

Poniższy przykład dotyczy jednostki organizacyjnej. Żądanie grupy wyglądałoby tak taki sam oprócz zasobu targetResource, który ma parametr „groups/” zamiast „jednostki organizacyjne/” przed identyfikatorem.

Żądanie

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

batchInherit pozwala zmienić stan zasad w jednostce organizacyjnej z poziomu „stosowane lokalnie” na „dziedziczone”. Wartości lokalne zostaną wyczyszczone, a zasada W stosownych przypadkach odziedziczą wartości z nadrzędnej jednostki organizacyjnej.

Metoda batchInherit umożliwia również wysyłanie wielu dziedziczenia zasad wiele żądań jednocześnie. Jednak nie wszystkie zasady można grupować. Aby dowiedzieć się więcej, zapoznaj się z sekcją Zbiorcze aktualizowanie zasad.

Żądanie

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

batchDelete pozwala usunąć zasadę z grupy. Wartości lokalne zostaną wyczyszczone.

Metoda batchDelete umożliwia również wysyłanie wielu żądań usunięcia zasad wiele żądań jednocześnie. Jednak nie wszystkie zasady można grupować. Więcej informacji: Zasady dotyczące aktualizacji zbiorczych

Żądanie

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.

{}

Określanie priorytetów grup

listGroupPriorityOrdering pozwala na określenie priorytetu grup dla aplikacji.

Kolejność zwracanych identyfikatorów grup wskazuje priorytet, ich ustawienia będą stosowane do aplikacji; późniejsze identyfikatory zasady będą zastąpione przez zasady, których identyfikatory znajdują się wcześniej na liście.

Priorytety grup są wyższe niż priorytety jednostek organizacyjnych.

W tym żądaniu zwracamy kolejność priorytetów aplikacji „exampleapp”. Aplikacja użytkownika Chrome.

Żądanie

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 priorytetu grupy

updateGroupPriorityOrdering pozwala zaktualizować priorytet grup aplikacji.

Kolejność identyfikatorów grup w żądaniu wskazuje priorytet, ich ustawienia będą stosowane do aplikacji; późniejsze identyfikatory zasady będą zastąpione przez zasady, których identyfikatory znajdują się wcześniej na liście. Żądanie musi uwzględnij każdy identyfikator grupy, który jest obecnie stosowany w aplikacji.

Priorytety grup są wyższe niż priorytety jednostek organizacyjnych.

W tym zgłoszeniu ustawiamy priorytet aplikacji „exampleapp”. Aplikacja użytkownika Chrome.

Żądanie

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.

{}

Obsługa zasad, które wymagają potwierdzenia

Niektóre schematy zasad określają „powiadomienia” dla określonych wartości danego 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 wartości pola pluginVmAllowed na true to powiązany z powiadomieniem, które zawiera acknowledgementRequired. Aby prawidłowo ustaw tę wartość pola na true, prześlij żądanie, które określa pole potwierdzenia od ackNoticeForPluginVmAllowedSetToTrue do true, W przeciwnym razie w żądaniu pojawi się błąd.

W tym przykładzie musisz wysłać poniższe żą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 mają pola o nazwie UploadedFile, dlatego musisz przesłać który ma być wartością tych zasad dla serwera API, w kolejności aby uzyskać adres URL do wykorzystania w żądaniach typu BatchModify.

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

Przesyłanie pliku

Żądanie

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ź

Prawidłowa 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 zasad dotyczących plików

Żądanie

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.

{}