Muestras de código

En las siguientes solicitudes, se muestra la administración de políticas con la API de Policy. Antes de ti asegúrate de revisar la descripción general de la API de Chrome Policy para obtener un resumen de alto nivel de las funciones de esta API.

Todas las solicitudes que se presentan a continuación usan las siguientes variables:

  • $TOKEN: Token de OAuth 2
  • $CUSTOMER: ID del cliente o literal de my_customer

Enumerar esquemas para políticas de impresoras

Para enumerar los esquemas que solo involucran políticas para impresoras, aplicaremos filter. parámetro a la solicitud de lista de servicios de esquema. Puedes controlar la paginación de la resultado con los parámetros pageSize y pageToken.

Solicitud

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

Respuesta

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

Buscar esquemas

Puedes crear búsquedas complejas con el parámetro filter= en el esquema Solicitud de lista de servicios. Por ejemplo, si quieres buscar esquemas con la palabra "impresora" en el nombre y la palabra "dispositivos" en la descripción, puedes aplicar el siguiente valor al filtro name=printers AND description=devices.

Obtén más información sobre cómo enumerar esquemas de políticas.

Solicitud

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

Respuesta

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

Obtén un esquema particular

En el resultado anterior, vemos una lista de esquemas de políticas compatibles. Cada esquema tiene un campo name que identifique el esquema En el futuro, una vez que conozcas nombre del esquema, puedes leer el esquema particular directamente consultando el nombre del esquema en la URL de la solicitud.

Veamos un ejemplo del esquema de chrome.printers.AllowForUsers.

Solicitud

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

Respuesta

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

Arriba de la respuesta de esquema de política, se describe el esquema de Política chrome.printers.AllowForUsers. Observa el campo additionalTargetKeyNames. Este campo explica que la política requiere que se proporcionen claves o pares adicionales. cuando se trata de esta política. En particular, para esta política siempre necesitamos proporcionar el identificador de una impresora.

Lee un valor de la política

Leamos una política chrome.printers.AllowForUsers para una impresora en particular. Observa el uso del campo additionalTargetKeys para especificar el ID de impresora en la solicitud.

Puedes leer una política desde una unidad organizativa o un grupo.

En la respuesta, observa el campo sourceKey, que especifica qué Unidad organizativa o grupo del que proviene el valor de la política. Para Unidades organizativas, existen las siguientes posibilidades:

  • Si la unidad organizativa de origen es la misma que la unidad organizativa que se indica en una significa que la política se aplica localmente en esta unidad organizativa.
  • Si la unidad organizativa de origen es diferente de la unidad organizativa indicada en una solicitud, significa que la política se hereda de la Oficina de administración Unidad.
  • Si no hay una sourceKey presente o la respuesta está vacía, significa que la política no está configurado para el cliente y tiene un valor de sistema predeterminado.

Para los grupos, el sourceKey siempre será el mismo que el grupo que se especificadas en la solicitud.

El siguiente ejemplo corresponde a una unidad organizativa. Una solicitud de grupo sería iguales excepto por targetResource, que tendría la configuración “groups/” en vez de “orgunits/” antes del id.

Solicitud

  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"

Respuesta

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

Ten en cuenta que todas las entidades en los recursos de destino se pueden recuperar si omites additionalTargetKeys de la solicitud. Por ejemplo, si additionalTargetKeys de la solicitud anterior, devolvería todas las impresoras de la recurso de destino especificado.

Leer varias políticas

Proporcionar un espacio de nombres de esquema con un asterisco (p.ej., chrome.printers.*) permite leer los valores de todas las políticas de este espacio de nombres en un Unidad o grupo organizacional. Obtén más información sobre Esquemas de políticas.

El siguiente ejemplo corresponde a una unidad organizativa. Una solicitud de grupo sería iguales excepto por targetResource, que tendría la configuración “groups/” en vez de “orgunits/” antes del id.

Solicitud

  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"

Respuesta

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

Modifica el valor de la política

Como se ve en la respuesta del esquema de política, la política chrome.printers.AllowForUsers tiene un campo llamado allowForUsers. Este campo es de tipo booleano. Ejemplo valor de la política podría ser {allowForUsers: false} o {allowForUsers: true} En este caso particular, tenemos un solo campo, pero otras políticas pueden contener varios campos.

En las solicitudes de modificación, debemos especificar un updateMask. Actualizar máscara enumera todos los campos que queremos modificar. Si la política ya se aplicó de forma local en el Unidad organizativa, los campos que no figuran en la máscara de actualización permanezca intacta. Si la política no se aplicó de forma local en el Unidad organizativa y todos los campos que no se enumeren mediante la máscara de actualización copiar sus valores de la unidad organizativa superior cuando corresponda toda la política se aplicará de forma local.

Los siguientes ejemplos corresponden a una unidad organizativa. Las solicitudes de grupo son excepto por targetResource, que tendría la configuración “groups/” en vez de “orgunits/” antes del id. Aquí inhabilitaremos una impresora 0gjdgxs208tpef para usuarios en el ID de la unidad organizativa 04fatzly4jbjho9:

Solicitud

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"

Respuesta

Una respuesta correcta está vacía.

{}

Los campos de varios valores, como las listas o los arrays, están marcados con la etiqueta “LABEL_REPEATED” etiqueta. Para propagar campos de varios valores, usa el siguiente formato de array JSON: [value1, value2, value3, ...]

Por ejemplo, para establecer las URL de origen de los paquetes de aplicaciones y extensiones, como “prueba1.com”, “prueba2.com” y “test3.com”, debemos enviar la siguiente solicitud:

Solicitud

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"

Respuesta

Una respuesta correcta está vacía.

{}

Para todas las políticas que contienen campos NullableDuration, hay dos versiones. La versión original solo acepta cadenas como entrada para NullableDuration y ahora es obsoleto. Utiliza la versión V2, que reemplaza el tipo de duración con una o una entrada numérica. Por ejemplo, para establecer la duración máxima de la sesión del usuario en 10 minutos necesitamos enviar la siguiente solicitud:

Solicitud

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"

Respuesta

Una respuesta correcta está vacía.

{}

Modifica varias políticas a la vez

La batchModify te permite enviar múltiples modificaciones de políticas al mismo tiempo. Sin embargo, no todas las políticas se pueden agrupar. Para obtener más detalles, consulta Políticas de actualización por lotes.

En este ejemplo, modificaremos en la misma solicitud dos tipos políticas (chrome.printers.AllowForDevices y chrome.printers.AllowForUsers) para la misma impresora.

El siguiente ejemplo corresponde a una unidad organizativa. Una solicitud de grupo sería iguales excepto por targetResource, que tendría la configuración “groups/” en vez de “orgunits/” antes del id.

Solicitud

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"

Respuesta

Una respuesta correcta está vacía.

{}

Hereda un valor de política en una unidad organizativa

La batchInherit te permite modificar el estado de la política en una unidad organizativa desde "aplicada de forma local" como “heredados”. Se borrarán los valores locales y heredarán los valores de una unidad organizativa superior, cuando corresponda.

El método batchInherit también te permite enviar varias políticas heredadas al mismo tiempo. Sin embargo, no todas las políticas se pueden agrupar. Para obtener más detalles, consulta Políticas de actualización por lotes.

Solicitud

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"

Respuesta

Una respuesta correcta está vacía.

{}

Borrar un valor de la política en un grupo

La batchDelete te permite borrar una política de un Grupo. Se borrarán los valores locales.

El método batchDelete también te permite enviar varias eliminaciones de políticas al mismo tiempo. Sin embargo, no todas las políticas se pueden agrupar. Para obtener más detalles, consulta Políticas de actualización por lotes.

Solicitud

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"

Respuesta

Una respuesta correcta está vacía.

{}

Indica el orden de prioridad de un grupo.

La listGroupPriorityOrdering te permite enumerar el orden de prioridad de los Grupos de una app.

El orden de los IDs de grupo que se devuelven indica la prioridad en la que se aplicarán sus parámetros de configuración a la app. IDs posteriores las políticas serán anulada por las políticas cuyos IDs se encuentran antes en la lista.

Ten en cuenta que las prioridades del grupo son más altas que las prioridades de la unidad organizativa.

En esta solicitud, mostramos el orden de prioridad para la “exampleapp”. App de usuario de Chrome.

Solicitud

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"

Respuesta

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

Actualiza el orden de prioridad de un grupo

La updateGroupPriorityOrdering te permite actualizar el orden de prioridad de los Grupos de una app.

El orden de los IDs de grupo en la solicitud indica la prioridad en que se aplicarán sus parámetros de configuración a la app. IDs posteriores las políticas serán anulada por las políticas cuyos IDs se encuentran antes en la lista. La solicitud debe incluir cada ID de grupo que se aplique actualmente en la aplicación.

Ten en cuenta que las prioridades del grupo son más altas que las prioridades de la unidad organizativa.

En esta solicitud, estableceremos el orden de prioridad para la "exampleapp". App de usuario de Chrome.

Solicitud

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"

Respuesta

Una respuesta correcta está vacía.

{}

Maneja políticas que requieren confirmación

Algunos esquemas de política especifican los “avisos” para ciertos valores de un campo en particular que requieran reconocimiento.

Ejemplo de la 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"
}

En el ejemplo anterior, establecer el valor de campo pluginVmAllowed en true es asociado con un aviso que tiene acknowledgementRequired. Para correctamente establece el valor de este campo en true, deberás enviar una solicitud que especifique el campo de confirmación ackNoticeForPluginVmAllowedSetToTrue en true De lo contrario, recibirás un error en tu solicitud.

En este ejemplo, tendrías que enviar la siguiente solicitud de modificación por lotes.

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"

Configuración de políticas de archivos

Algunas políticas tienen campos escritos como UploadedFile, deberás subir la de configuración que deseas establecer como el valor de esas políticas para el servidor de la API, de modo que para obtener una URL y usarla en las solicitudes BatchModify.

En este ejemplo, configuraremos chrome.users.Wallpaper cargando un archivo Archivo JPEG.

Sube el archivo

Solicitud

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"

Respuesta

Una respuesta correcta debe contener la URL para acceder al archivo:

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

Establece la política de archivos

Solicitud

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"

Respuesta

Una respuesta correcta debe estar vacía.

{}