ラベルを更新する

一連の更新リクエストを適用して、単一のラベルを更新し、新しい下書きリビジョンを作成できます。たとえば、既存のラベル プロパティ(ラベル の説明)を更新したり、ラベルに新しい Fieldを追加したりできます。

ラベルの更新は、メソッドが更新 Requestオブジェクトのリストを受け取るため、バッチ アップデートとして機能します。バッチリクエストで指定されたのと同じ順序で更新が行われます。バッチ アップデートの更新はアトミックに適用されます。つまり、バッチ内のリクエストが失敗した場合、更新全体が失敗し、依存関係のある変更は適用されません。ラベルは変更されません。

更新が成功した場合、変更をドライブ アイテムで使用するには、結果の下書きリビジョンを公開する必要があります。

ラベル オブジェクトを更新する

ラベルには、次のように更新できる他の多くのオブジェクト タイプが含まれています。

  • ラベルのプロパティ
  • フィールドとフィールドの型
  • 選択肢と選択肢のプロパティ

これらは、ラベルの外観と動作を制御する多くのオブジェクトの一部です。

オペレーションのカテゴリ

labels.delta メソッドでサポートされている次のオペレーションは、 次のカテゴリに分類できます。

カテゴリ 説明
作成 オブジェクトを追加します。
更新 オブジェクトの特定のプロパティを更新します。
有効にする オブジェクトを有効にします。
無効にする オブジェクトを無効にします。
削除 オブジェクトを削除します。

これらのカテゴリは、特定のオペレーションの動作を説明するために次のセクションで使用されます。

更新リクエスト

labels.delta メソッドは、1 つ以上の Request オブジェクトを受け取ります。各 オブジェクトは、実行するリクエストの単一のタイプを指定します。リクエストにはさまざまな種類があります。リクエストのタイプをさまざまなカテゴリに分類した内訳は次のとおりです。

リクエストの種類
ラベルのプロパティ
更新 UpdateLabelPropertiesRequest
フィールド
作成 CreateFieldRequest
更新 UpdateFieldPropertiesRequest
UpdateFieldTypeRequest
有効にする EnableFieldRequest
無効にする DisableFieldRequest
削除 DeleteFieldRequest
選択肢
作成 CreateSelectionChoiceRequest
更新 UpdateSelectionChoicePropertiesRequest
有効にする EnableSelectionChoiceRequest
無効にする DisableSelectionChoiceRequest
削除 DeleteSelectionChoiceRequest

フィールド マスク

「更新」タイプと「無効にする」タイプのリクエストの多くには、 FieldMaskが必要です。 これは、他のフィールドを変更せずに更新するフィールドのカンマ区切りリストです。編集するフィールドのみが更新されるようにするには、マスクが必要です。少なくとも 1 つのフィールドを指定する必要があります。

ラベルを更新するには、 delta メソッドを labels コレクションで使用します。

次の項目も指定する必要があります。

  • useAdminAccess は、ユーザーの管理者認証情報を使用する場合は true です。サーバーは、アクセスを許可する前に、ユーザーがラベルの管理者であることを確認します。

  • ラベルに適用する更新を指定する Request that 。

  • property メソッドを使用したラベル title

  • 1 つ以上の Field.

  • すべてのラベルを表すラベルリソース 。これには、リソース NameID が含まれます。これは、ラベルのグローバルに一意の識別子です。

  • LabelView は、ラベル レスポンスに適用されるリソースビューを設定する場合は LABEL_VIEW_FULL です。 LABEL_VIEW_FULL は、可能なすべてのフィールドを返します。

この例では、ID を使用して正しいラベルを更新します。

Python

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);
});

ラベル、フィールド、選択肢が更新され、ラベルのリビジョン ID がインクリメントされ、ラベルが下書きラベルとしてデータベースに保存されます。ラベルの StatePUBLISHEDで、 hasUnpublishedChanges=trueは下書きの変更があることを意味しますが、ユーザーは 利用できません。変更がユーザーに表示されるようにするには、更新されたラベルを PUBLISHED にする必要があります。詳細については、ラベル のライフサイクルをご覧ください。