라벨 업데이트

일련의 업데이트 요청을 적용하여 단일 라벨을 업데이트하면 새 초안 버전이 생성됩니다. 예를 들어 기존 라벨 속성 (라벨 설명)을 업데이트하거나 라벨에 새 Field를 추가할 수 있습니다.

라벨 업데이트는 메서드가 업데이트 Request 객체 목록을 가져오므로 일괄 업데이트 역할을 합니다. 일괄 요청에 지정된 순서와 동일한 순서로 업데이트합니다. 일괄 업데이트의 업데이트는 원자적으로 적용됩니다. 즉, 일괄 처리의 요청이 실패하면 전체 업데이트가 실패하고 종속될 수 있는 변경사항이 적용되지 않습니다. 라벨은 변경되지 않은 상태로 유지됩니다.

업데이트가 성공하면 변경사항을 Drive 항목과 함께 사용하기 전에 결과 초안 버전을 게시해야 합니다.

라벨 객체 업데이트

라벨에는 다음과 같이 업데이트할 수 있는 다른 여러 객체 유형이 포함되어 있습니다.

  • 라벨 속성
  • 필드 및 필드 유형
  • 선택 항목 및 선택 항목 속성

이러한 객체는 라벨의 모양과 작업을 제어하는 여러 객체 중 일부입니다.

작업 카테고리

labels.delta 메서드에서 지원하는 다음 작업은 다음과 같은 광범위한 카테고리로 그룹화할 수 있습니다.

카테고리 설명
만들기객체를 추가합니다.
업데이트객체의 특정 속성을 업데이트합니다.
사용 설정객체를 사용 설정합니다.
사용 중지객체를 사용 중지합니다.
삭제객체를 삭제합니다.

이러한 카테고리는 다음 섹션에서 특정 작업의 동작을 설명하는 데 사용됩니다.

업데이트 요청

labels.delta 메서드는 하나 이상의 Request 객체를 가져와서 작동하며, 각 객체는 수행할 단일 유형의 요청을 지정합니다. 요청에는 여러 가지 유형이 있습니다. 다음은 다양한 카테고리로 그룹화된 요청 유형에 대한 분석입니다.

요청 유형
라벨 속성
업데이트 UpdateLabelPropertiesRequest
필드
만들기 CreateFieldRequest
업데이트 UpdateFieldPropertiesRequest
UpdateFieldTypeRequest
사용 설정 EnableFieldRequest
사용 중지 DisableFieldRequest
삭제 DeleteFieldRequest
선택 항목
만들기 CreateSelectionChoiceRequest
업데이트 UpdateSelectionChoicePropertiesRequest
사용 설정 EnableSelectionChoiceRequest
사용 중지 DisableSelectionChoiceRequest
삭제 DeleteSelectionChoiceRequest

필드 마스크

'업데이트' 및 '사용 중지' 유형 요청에는 FieldMask가 필요합니다. 이는 다른 필드는 변경하지 않고 업데이트할 필드의 쉼표로 구분된 목록입니다. 마스크는 수정하려는 필드만 업데이트되도록 하는 데 필요합니다. 하나 이상의 필드를 지정해야 합니다.

라벨을 업데이트하려면 delta 메서드를 labels 컬렉션에서 사용합니다.

다음도 지정해야 합니다.

  • useAdminAccess는 사용자의 관리자 인증 정보를 사용하기 위해 true입니다. 서버는 액세스를 허용하기 전에 사용자가 라벨의 관리자인지 확인합니다.

  • 라벨에 적용 가능한 업데이트를 지정하는 Request입니다.

  • property 메서드를 통한 라벨 title입니다.

  • 하나 이상의 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여야 합니다. 자세한 내용은 라벨 수명 주기를 참고하세요.