Muestras de código

En las siguientes solicitudes, se muestra la administración de políticas con la API de Policy. Antes de comenzar, 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 my_customer

Enumerar esquemas para las políticas de impresoras

Para enumerar esquemas que solo corresponden a políticas para impresoras, aplicaremos el parámetro filter a la solicitud de lista de servicios de esquema. Puedes controlar la paginación del 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 consultas de búsqueda complejas con el parámetro filter= en la solicitud de lista del servicio de Schema. Por ejemplo, si deseas buscar esquemas que tengan 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 información para 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 en particular

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

Veamos un ejemplo del esquema 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 del esquema de política, se describe el esquema de la política chrome.printers.AllowForUsers. Observa el campo additionalTargetKeyNames. En este campo, se explica que la política requiere que se proporcionen claves o valores adicionales cuando se trata de esta política. En particular, para esta política, siempre debemos proporcionar el identificador de una impresora.

Lee el valor de una política

Vamos a leer 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 de qué unidad organizativa o grupo proviene el valor de la política. En el caso de las unidades organizativas, existen las siguientes posibilidades:

  • Si la unidad organizativa de origen es la misma que la unidad organizativa que se proporciona en una solicitud, significa que la política se aplica de forma local en esta unidad organizativa.
  • Si la unidad organizativa de origen es diferente de la unidad organizativa proporcionada en una solicitud, significa que la política se hereda de la unidad organizativa de origen.
  • Si no hay ningún sourceKey presente, o la respuesta está vacía, significa que la política no está establecida para el cliente y tiene un valor del sistema predeterminado.

Para los grupos, sourceKey siempre será la misma que la del grupo que se especificó en la solicitud.

El siguiente ejemplo corresponde a una unidad organizativa. Una solicitud de grupo sería la misma, excepto por targetResource, que tendría "groups/" en lugar 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 se omite additionalTargetKeys en la solicitud. Por ejemplo, si se omitiera additionalTargetKeys de la solicitud anterior, se mostrarían todas las impresoras del recurso de destino especificado.

Leer varias políticas

Proporcionar un espacio de nombres del esquema con un asterisco (p.ej., chrome.printers.*) te permite leer valores de todas las políticas en este espacio de nombres en una unidad organizativa o un grupo en particular. Obtén más información sobre los esquemas de políticas.

El siguiente ejemplo corresponde a una unidad organizativa. Una solicitud de grupo sería la misma, excepto por targetResource, que tendría "groups/" en lugar 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íticas, la política chrome.printers.AllowForUsers tiene un campo llamado allowForUsers. Este campo es de tipo booleano. El valor de ejemplo de la política puede ser {allowForUsers: false} o {allowForUsers: true}. En este caso particular, solo tenemos un campo, pero otras políticas pueden contener varios campos.

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

Los siguientes ejemplos corresponden a una unidad organizativa. Las solicitudes de grupo son las mismas, excepto por targetResource, que tendría “groups/” en lugar de “orgunits/” antes del ID. Aquí inhabilitaremos una impresora 0gjdgxs208tpef para los usuarios en el ID de 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 valores múltiples, como las listas o los arrays, se marcan con la etiqueta “LABEL_REPEATED”. Para propagar campos de valores múltiples, usa el siguiente formato de arreglo JSON: [value1, value2, value3, ...].

Por ejemplo, para configurar las URLs de origen de los paquetes de app y extensión como “prueba1.com”, “prueba2.com” y “prueba3.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.

{}

Hay dos versiones para todas las políticas que contienen campos NullableDuration. La versión original solo acepta cadenas como entrada para NullableDuration y dejó de estar disponible. Usa la versión V2, que reemplaza el tipo de duración por una entrada numérica. Por ejemplo, para establecer la duración máxima de la sesión de usuario en 10 minutos, 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: ['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

El método batchModify te permite enviar varias 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 políticas diferentes (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 la misma, excepto por targetResource, que tendría "groups/" en lugar 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 el valor de una política en una unidad organizativa

El método batchInherit te permite modificar el estado de la política en una unidad organizativa de "aplicada de forma local" a "heredada". Se borrarán los valores locales, y la política heredará los valores de una unidad organizativa superior cuando corresponda.

El método batchInherit también te permite enviar varias solicitudes heredadas 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: "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 el valor de una política de un grupo

El método 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 solicitudes de eliminación 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.

{}

Enumerar el orden de prioridad de un grupo

El método listGroupPriorityOrdering te permite enumerar el orden de prioridad de los grupos para una app.

El orden de los IDs de grupo que se muestran indica la prioridad en la que se aplicará su configuración a la app. Las políticas cuyos IDs se encuentran antes en la lista anularán las políticas de los IDs posteriores.

Ten en cuenta que las prioridades de los grupos son superiores a las prioridades de las unidades organizativas.

En esta solicitud, mostramos el orden de prioridad para la app de usuario de Chrome "exampleapp".

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

El método updateGroupPriorityOrdering te permite actualizar el orden de prioridad de los grupos para una app.

El orden de los ID de grupo en la solicitud indica la prioridad en la que se aplicará su configuración a la app. Las políticas cuyos IDs se encuentran antes en la lista anularán las políticas de los IDs posteriores. La solicitud debe incluir cada ID de grupo que se aplica actualmente a la app.

Ten en cuenta que las prioridades de los grupos son superiores a las prioridades de las unidades organizativas.

En esta solicitud, establecemos el orden de prioridad para la app de usuario de Chrome "exampleapp".

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íticas especifican “avisos” para ciertos valores de un campo en particular que requieren confirmación.

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, configurar el valor del campo pluginVmAllowed en true está asociada con una notificación que tiene acknowledgementRequired. Para establecer correctamente este valor de campo en true, deberás enviar una solicitud que especifique el campo de confirmación ackNoticeForPluginVmAllowedSetToTrue a true; de lo contrario, tu solicitud mostrará un error.

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 el archivo que deseas establecer como el valor de esas políticas al servidor de la API a fin de obtener una URL para usar en las solicitudes BatchModify.

En este ejemplo, configuraremos chrome.users.Wallpaper mediante la carga de un archivo JPEG.

Cómo subir 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.

{}