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

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

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

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

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

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

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

Это некоторые из множества объектов, которые управляют внешним видом и функционированием этикетки.

Категории операций

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

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

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

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

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

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

Полевые маски

Для многих запросов типа «Обновление» и «Отключение» требуется 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 , чтобы изменения стали видны пользователям. Подробнее см. в разделе Жизненный цикл метки .