Exemplos de código

As solicitações abaixo ilustram o gerenciamento de políticas com a API Policy. Antes de você leia a Visão geral da API Chrome Policy para um resumo de alto nível dos recursos dessa API.

Todas as solicitações apresentadas abaixo usam as seguintes variáveis:

  • $TOKEN: token OAuth 2
  • $CUSTOMER: ID do cliente ou my_customer literal

Listar esquemas para políticas de impressora

Para listar esquemas que só dizem respeito a políticas de impressoras, vamos aplicar filter à solicitação de lista de serviço de esquema. Você pode controlar a paginação do resultado usando os parâmetros pageSize e pageToken.

Solicitação

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

Resposta

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

Pesquisar esquemas

É possível criar consultas de pesquisa complexas usando o parâmetro filter= no esquema Solicitação da lista de serviços. Por exemplo, se você quer pesquisar esquemas que têm a palavra "impressora" no nome e na palavra "dispositivos" na descrição, você pode aplicar o seguinte valor ao filtro name=printers AND description=devices.

Saiba como listar esquemas de políticas.

Solicitação

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

Resposta

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

Receber um esquema específico

No resultado acima, vemos uma lista de esquemas de políticas compatíveis. Cada esquema tem um campo name que identifica o esquema. No futuro, uma vez que você souber esquema, você pode ler o esquema específico diretamente consultando o no URL da solicitação.

Vamos conferir um exemplo de esquema chrome.printers.AllowForUsers.

Solicitação

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

Resposta

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

Acima, a resposta do esquema de política descreve o esquema de chrome.printers.AllowForUsers. Aviso no campo additionalTargetKeyNames. Este campo explica que a política exige o fornecimento de chaves/valores extras ao lidar com essa política. Em particular, para esta política, sempre precisamos forneça o identificador de uma impressora.

Ler um valor de política

Vamos ler uma política chrome.printers.AllowForUsers para uma determinada impressora. Use o campo additionalTargetKeys para especificar o ID da impressora na solicitação.

Você pode ler uma política em uma unidade organizacional ou em um grupo.

Na resposta, observe o campo sourceKey, que especifica qual Unidade organizacional ou grupo de origem do valor da política. Para Unidades organizacionais, existem as seguintes possibilidades:

  • Se a unidade organizacional de origem for igual à unidade organizacional fornecida em uma ela será aplicada localmente a essa unidade organizacional.
  • Se a unidade organizacional de origem for diferente da unidade organizacional informada no uma solicitação, isso significa que a política é herdada da organização de origem Unidade.
  • Se nenhum sourceKey estiver presente ou a resposta estiver vazia, isso significa que a política não está definido para o cliente e tem um valor de sistema padrão.

Nos Grupos do Google, a sourceKey será sempre a mesma que o grupo que foi especificado na solicitação.

O exemplo a seguir refere-se a uma unidade organizacional. Uma solicitação de grupo seria o mesmo, exceto para targetResource, que teria "groups/" em vez de "unidades organizacionais/" antes do ID.

Solicitação

  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"

Resposta

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

Todas as entidades nos recursos de destino podem ser buscadas com a omissão additionalTargetKeys da solicitação. Por exemplo, se additionalTargetKeys foram omitidos da solicitação acima, retornaria todas as impressoras na recurso de destino especificado.

Ler várias políticas

Fornecer um namespace de esquema com um asterisco (por exemplo, chrome.printers.*) permite os valores de todas as políticas sob esse namespace em um determinado Grupo ou unidade organizacional. Saiba mais sobre Esquemas de políticas.

O exemplo a seguir refere-se a uma unidade organizacional. Uma solicitação de grupo seria o mesmo, exceto para targetResource, que teria "groups/" em vez de "unidades organizacionais/" antes do ID.

Solicitação

  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"

Resposta

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

Modificar o valor da política

Conforme visto na resposta do esquema da política, a política chrome.printers.AllowForUsers tem um campo chamado allowForUsers. Esse campo é do tipo booleano. Exemplo o valor da política pode ser {allowForUsers: false} ou {allowForUsers: true}. Neste caso específico, temos apenas um campo, Porém, outras políticas podem conter vários campos.

Em solicitações de modificação, precisamos especificar um updateMask. Atualizar todas as listas de máscaras os campos que queremos modificar. Se a política já tinha sido aplicada localmente no unidade organizacional, os campos não listados pela máscara de atualização permanecem intocados. Se a política não tiver sido aplicada localmente no Unidade organizacional e todos os campos não listados pela máscara de atualização vão copiar os valores da unidade organizacional mãe, quando apropriado, e as toda a política será aplicada localmente.

Os exemplos a seguir são referentes a uma unidade organizacional. As solicitações de grupo são o mesmo exceto para targetResource, que teria "groups/" em vez de "unidades organizacionais/" antes do ID. Aqui, não permitiremos a impressora 0gjdgxs208tpef para usuários no ID da unidade organizacional 04fatzly4jbjho9:

Solicitação

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"

Resposta

Uma resposta bem-sucedida está vazia.

{}

Campos com vários valores, como listas ou matrizes, são marcados com um "LABEL_REPEATED" rótulo. Para preencher campos de vários valores, use o seguinte formato de matriz JSON: [value1, value2, value3, ...]:

Por exemplo, para definir URLs de origem para pacotes de aplicativos e extensões como "teste1.com", "teste2.com" e "test3.com", precisamos enviar a seguinte solicitação:

Solicitação

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"

Resposta

Uma resposta bem-sucedida está vazia.

{}

Para todas as políticas que contêm campos NullableDuration, há duas versões. A versão original só aceita string como entrada para NullableDuration e agora é descontinuada. Use a versão V2, que substitui o tipo de duração por um uma entrada numérica. Por exemplo, para definir a duração máxima da sessão do usuário como 10 minutos precisamos enviar a seguinte solicitação:

Solicitação

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"

Resposta

Uma resposta bem-sucedida está vazia.

{}

Modificar várias políticas de uma vez

O batchModify permite que você envie várias modificações de política ao mesmo tempo. No entanto, nem todas as políticas podem ser agrupadas. Para mais detalhes, consulte Políticas de atualização em lote.

Neste exemplo, modificaremos, na mesma solicitação, dois campos políticas (chrome.printers.AllowForDevices e chrome.printers.AllowForUsers) para a mesma impressora.

O exemplo a seguir refere-se a uma unidade organizacional. Uma solicitação de grupo seria o mesmo, exceto para targetResource, que teria "groups/" em vez de "unidades organizacionais/" antes do ID.

Solicitação

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"

Resposta

Uma resposta bem-sucedida está vazia.

{}

Herdar um valor de política em uma unidade organizacional

O batchInherit permite modificar o status da política em uma unidade organizacional de "aplicado localmente" como "herdado". Os valores locais serão apagados, e a política vão herdar valores de uma unidade organizacional mãe, quando aplicável.

O método batchInherit também permite enviar várias políticas herdadas ao mesmo tempo. No entanto, nem todas as políticas podem ser agrupadas. Para mais detalhes, consulte Políticas de atualização em lote.

Solicitação

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"

Resposta

Uma resposta bem-sucedida está vazia.

{}

Excluir um valor de política em um grupo

O batchDelete permite excluir uma política de um grupo. Os valores locais serão apagados.

O método batchDelete também permite enviar várias políticas de exclusão ao mesmo tempo. No entanto, nem todas as políticas podem ser agrupadas. Para mais detalhes, consulte Políticas de atualização em lote.

Solicitação

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"

Resposta

Uma resposta bem-sucedida está vazia.

{}

Listar a ordem de prioridade para um grupo

O listGroupPriorityOrdering permite listar a ordem de prioridade dos grupos de um aplicativo.

A ordem dos IDs de grupo retornados indica a prioridade na qual as configurações dele serão aplicadas ao app. IDs posteriores" políticas serão substituído por políticas com IDs que estão nos primeiros lugares da lista.

As prioridades de grupos são maiores do que as de unidades organizacionais.

Nesta solicitação, estamos retornando a ordem de prioridade para o "exampleapp" Chrome User.

Solicitação

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"

Resposta

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

Atualizar a ordem de prioridade de um grupo

O updateGroupPriorityOrdering permite que você atualize a ordem de prioridade dos Grupos de um aplicativo.

A ordem dos IDs de grupo na solicitação indica a prioridade na qual as configurações dele serão aplicadas ao app. IDs posteriores" políticas serão substituído por políticas com IDs que estão nos primeiros lugares da lista. A solicitação deve inclua todos os IDs de grupo aplicados ao app no momento.

As prioridades de grupos são maiores do que as de unidades organizacionais.

Nesta solicitação, definimos a ordem de prioridade para o "exampleapp" Chrome User.

Solicitação

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"

Resposta

Uma resposta bem-sucedida está vazia.

{}

Lidar com políticas que exigem confirmação

Alguns esquemas de política especificam "avisos" com certos valores de um campo específico. que exigem confirmação.

Exemplo da política 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"
}

No exemplo acima, definir o valor do campo pluginVmAllowed como true é associado a um aviso que tenha acknowledgementRequired. Para adequadamente defina o valor desse campo como true, será necessário enviar uma solicitação que especifique o campo de confirmação ackNoticeForPluginVmAllowedSetToTrue para true; Caso contrário, você receberá um erro na solicitação.

Nesse exemplo, você precisaria enviar a seguinte solicitação de modificação em lote:

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"

Como definir políticas de arquivos

Algumas políticas têm campos digitados como UploadedFile. Você precisará fazer o upload do arquivo que você quer definir como o valor dessas políticas para o servidor da API, para para conseguir um URL e usá-lo em solicitações BatchModify.

Neste exemplo, definiremos chrome.users.Wallpaper fazendo upload de um JPEG.

Fazer upload do arquivo

Solicitação

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"

Resposta

Uma resposta bem-sucedida deve conter o URL para acessar o arquivo:

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

Definir a política de arquivos

Solicitação

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"

Resposta

Uma resposta bem-sucedida deve estar vazia.

{}