Обновить ярлык

Вы можете обновить одну этикетку, применив набор запросов на обновление, в результате чего будет создана новая черновая версия. Например, вы можете обновить существующее свойство метки (описание метки) или добавить к метке новое Field .

Обновление метки действует как пакетное обновление, поскольку метод принимает список объектов Request на обновление. Обновления выполняются в том же порядке, который указан в пакетном запросе. Обновления в пакетном обновлении применяются атомарно. То есть, если какой-либо запрос в пакете окажется неудачным, то все обновление окажется неудачным и ни одно из (потенциально зависимых) изменений не будет применено. Этикетка оставлена ​​без изменений.

Если обновление прошло успешно, полученный черновой вариант необходимо опубликовать, прежде чем изменения можно будет использовать с любым элементом Диска.

Обновить объекты меток

Метка включает в себя множество других типов объектов, которые можно обновлять, например:

  • Свойства метки
  • Поля и типы полей
  • Варианты выбора и свойства выбора выбора

Это лишь некоторые из многих объектов, которые управляют внешним видом и работой метки.

Категории эксплуатации

Следующие операции, поддерживаемые методом labels.delta , можно сгруппировать в следующие широкие категории:

Категория Описание
Создавать Добавьте объекты.
Обновлять Обновите определенные свойства объекта.
Давать возможность Включить объекты.
Запрещать Отключить объекты.
Удалить Удалить объекты.

Эти категории используются в следующем разделе для описания поведения конкретных операций.

Запросы на обновление

Метод labels.delta работает, беря один или несколько объектов Request , каждый из которых определяет один тип запроса для выполнения. Есть много разных запросов. Вот разбивка по типам запросов, сгруппированных по различным категориям.

Тип запроса
Свойства метки
Обновлять Запрос UpdateLabelPropertiesRequest
Поле
Создавать CreateFieldRequest
Обновлять Запрос UpdateFieldPropertiesRequest
UpdateFieldTypeRequest
Давать возможность EnableFieldRequest
Запрещать Деактивироватьфилдреквест
Удалить Удалитьфилдрекуест
Выбор Выбор
Создавать Создать запрос выбора выбора
Обновлять ОбновлениеВыборВыборСвойстваЗапрос
Давать возможность EnableSelectionChoiceRequest
Запрещать DisableSelectionChoiceRequest
Удалить УдалитьВыборВыборЗапрос

Маски полей

Для многих запросов типа «Обновить» и «Отключить» требуется FieldMask . Это список полей, разделенных запятыми, которые вы хотите обновить, оставив остальные поля без изменений. Маска необходима для обеспечения обновления только тех полей, которые вы хотите редактировать. Вы должны указать хотя бы одно поле.

Пример

Чтобы обновить метку, используйте метод delta в коллекции labels .

Также необходимо указать:

  • useAdminAccess имеет true , чтобы использовать учетные данные администратора пользователя. Прежде чем разрешить доступ, сервер проверяет, является ли пользователь администратором метки.

  • Request , указывающий применимые обновления метки.

  • title метки с помощью метода property .

  • Одно или несколько Field .

  • Ресурс Label , представляющий каждую метку. Он содержит Name ресурса и ID , который является глобальным уникальным идентификатором метки.

  • LabelView имеет LABEL_VIEW_FULL , чтобы установить представление ресурсов, применяемое к ответам меток. LABEL_VIEW_FULL возвращает все возможные поля.

В этом примере ID используется для обновления правильной метки.

Питон

body = {
'use_admin_access': True,
'requests': [{
  'update_label': {
    'properties': {
      'title': 'TITLE'
    },
    'update_mask': {
      'paths': ['title']
    }
  },
}, {
  'create_field': {
    'field': {
      'properties': {
        'display_name': 'DISPLAY_NAME'
      },
      'text_options': {}
    }
  }
}],
'view': 'LABEL_VIEW_FULL'
}
response = service.labels().delta(
  body=body,
  name='labels/ID').execute()

Node.js

var body = {
  'use_admin_access': true,
  'requests': [{
    'update_label': {
      'properties': {
        'title': 'TITLE'
      },
      'update_mask': {
        'paths': ['title']
      }
    },
  }, {
    'create_field': {
      'field': {
        'properties': {
          'display_name': 'DISPLAY_NAME'
        },
        'text_options': {}
      }
    }
  }],
  'view': 'LABEL_VIEW_FULL'
};
service.labels.delta({
  'resource': body,
  'name': 'labels/ID'
}, (err, res) => {
  if (err) return console.error('The API returned an error: ' + err);
  console.log(res);
});

Метка, поле или выбор обновляются, идентификатор редакции метки увеличивается, и метка сохраняется в базе данных как черновик метки. Метка имеет State PUBLISHED с параметром hasUnpublishedChanges=true что означает наличие черновых изменений, но они недоступны пользователям. Обновленная метка должна быть PUBLISHED прежде чем изменения станут видны пользователям. Дополнительные сведения см. в разделе Жизненный цикл метки .