Menyiapkan kebijakan

Halaman ini memberikan ringkasan singkat tentang folder dan menjelaskan cara mengelola dokumen menggunakan folder.

Mesin Kebijakan dan aturan

Di Gudang Dokumen, Policy Engine memungkinkan pengguna menentukan dan menjalankan operasi umum pada dokumen (misalnya, memvalidasi atau memperbarui) saat membuat atau memperbarui dokumen.

Aturan dan RuleSet

Aturan pada tingkat tinggi mengacu pada konfigurasi yang ditentukan pengguna yang menentukan hal berikut:

  • apa yang memicu pemeriksaan aturan,
  • kondisi mana yang dievaluasi, dan
  • tindakan apa yang dijalankan saat kondisi terpenuhi.

Selain spesifikasi ini, aturan mencakup informasi deskripsi, sumber, target, dan kondisi pemicu.

Kumpulan aturan logis disebut RuleSet. Misalnya, Aturan yang beroperasi pada skema yang sama dapat dikelompokkan bersama menjadi satu RuleSet. Pelanggan dapat menentukan beberapa RuleSet.

Aturan berguna untuk memicu tindakan standar secara otomatis, saat membuat atau memperbarui dokumen.

Aturan terdiri dari tiga hal utama:

  • TriggerType: Peristiwa saat pemeriksaan aturan harus dimulai. Create dan Update adalah jenis pemicu yang didukung.
  • Kondisi Aturan: Kondisi yang dievaluasi setelah jenis pemicu tertentu terdeteksi. Kondisi dapat dinyatakan menggunakan Common Expression Language (CEL). Setiap kondisi harus dievaluasi ke output boolean.
  • Tindakan: Serangkaian langkah yang dijalankan saat aturan terpenuhi. Jika kondisi aturan dievaluasi sebagai benar, tindakan yang sesuai (dikonfigurasi dalam aturan) akan dijalankan. Berikut adalah detail tingkat tinggi tentang tindakan tertentu yang diterapkan di Document Warehouse:
    • Tindakan Validasi Data: Tindakan yang memungkinkan validasi kolom tertentu dalam dokumen selama pembuatan atau pembaruan dokumen.
    • Tindakan Pembaruan Data: Tindakan yang memungkinkan pembaruan kolom tertentu dalam dokumen selama pembuatan atau pembaruan dokumen. Pembaruan tersebut dijalankan saat kondisi aturan terpenuhi.
    • Tindakan Hapus Dokumen: Tindakan yang memungkinkan penghapusan dokumen selama pembaruan dokumen saat kolom tertentu memenuhi kriteria penghapusan yang ditentukan menggunakan kondisi aturan.
    • Tindakan penyertaan folder: Tindakan yang otomatis menambahkan dokumen baru (atau dokumen yang diupdate) ke folder tertentu. Folder tersebut dapat ditentukan secara langsung menggunakan namanya.
    • Tindakan hapus dari folder: Tindakan yang otomatis menghapus dokumen baru dari folder tertentu saat kondisi tingkat aturan terpenuhi.
    • Tindakan Kontrol Akses: Tindakan yang memungkinkan pembaruan daftar kontrol akses (binding grup dan pengguna) selama pembuatan dokumen. Pembaruan tersebut dijalankan saat kondisi aturan terpenuhi.
    • Tindakan publikasikan: Tindakan yang memublikasikan pesan tertentu ke saluran Pub/Sub pengguna saat kondisi tingkat aturan terpenuhi.

Mengelola Kumpulan Aturan

Document Warehouse menyediakan API untuk mengelola RuleSet (Buat, Dapatkan, Perbarui, Hapus, Buat Daftar). Bagian ini memberikan contoh untuk mengonfigurasi berbagai jenis aturan.

Membuat RuleSet

Untuk membuat set aturan, lakukan hal berikut:

REST

Permintaan:

# Create a RuleSet for data validation.
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/ruleSets \
-d '{
  "rules": [
    {
      "trigger_type": "ON_CREATE",
      "condition": "documentType == \'W9\' && STATE ==\'CA\'",
      "actions": {
        "data_validation": {
          "conditions": {
            "NAME": "NAME != \'\'",
            "FILING_COST": "FILING_COST > 10.0"
          }
        }
      },
      "enabled": true
    }
  ],
  "description": "W9: Basic validation check rules."
}'

Respons

{
  "description": "W9: Basic validation check rules.",
  "name": "RULE_SET_NAME",
  "rules": [
    {
      "actions": [
        {
          "actionId": "de0e6b84-106b-44ba-b1c4-0b3ad6ddc719",
          "dataValidation": {
            "conditions": {
              "FILING_COST": "FILING_COST > 10.0",
              "NAME": "NAME != ''"
            }
          }
        }
      ],
      "condition": "documentType == 'W9' && STATE =='CA'",
      "enabled": true,
      "triggerType": "ON_CREATE"
    }
  ]
}

Python

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python Document AI Warehouse.

Untuk melakukan autentikasi ke Document AI Warehouse, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.


from google.cloud import contentwarehouse

# TODO(developer): Uncomment these variables before running the sample.
# project_number = "YOUR_PROJECT_NUMBER"
# location = "us" # Format is 'us' or 'eu'


def create_rule_set(project_number: str, location: str) -> None:
    # Create a client
    client = contentwarehouse.RuleSetServiceClient()

    # The full resource name of the location, e.g.:
    # projects/{project_number}/locations/{location}
    parent = client.common_location_path(project=project_number, location=location)

    actions = contentwarehouse.Action(
        delete_document_action=contentwarehouse.DeleteDocumentAction(
            enable_hard_delete=True
        )
    )

    rules = contentwarehouse.Rule(
        trigger_type="ON_CREATE",
        condition="documentType == 'W9' && STATE =='CA'",
        actions=[actions],
    )

    rule_set = contentwarehouse.RuleSet(
        description="W9: Basic validation check rules.",
        source="My Organization",
        rules=[rules],
    )

    # Initialize request argument(s)
    request = contentwarehouse.CreateRuleSetRequest(parent=parent, rule_set=rule_set)

    # Make the request
    response = client.create_rule_set(request=request)

    # Handle the response
    print(f"Rule Set Created: {response}")

    # Initialize request argument(s)
    request = contentwarehouse.ListRuleSetsRequest(
        parent=parent,
    )

    # Make the request
    page_result = client.list_rule_sets(request=request)

    # Handle the response
    for response in page_result:
        print(f"Rule Sets: {response}")

Java

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Java Document AI Warehouse.

Untuk melakukan autentikasi ke Document AI Warehouse, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

import com.google.cloud.contentwarehouse.v1.Action;
import com.google.cloud.contentwarehouse.v1.ActionOrBuilder;
import com.google.cloud.contentwarehouse.v1.CreateRuleSetRequest;
import com.google.cloud.contentwarehouse.v1.CreateRuleSetRequestOrBuilder;
import com.google.cloud.contentwarehouse.v1.DeleteDocumentAction;
import com.google.cloud.contentwarehouse.v1.DeleteDocumentActionOrBuilder;
import com.google.cloud.contentwarehouse.v1.ListRuleSetsRequest;
import com.google.cloud.contentwarehouse.v1.ListRuleSetsRequestOrBuilder;
import com.google.cloud.contentwarehouse.v1.LocationName;
import com.google.cloud.contentwarehouse.v1.Rule;
import com.google.cloud.contentwarehouse.v1.Rule.TriggerType;
import com.google.cloud.contentwarehouse.v1.RuleOrBuilder;
import com.google.cloud.contentwarehouse.v1.RuleSet;
import com.google.cloud.contentwarehouse.v1.RuleSetOrBuilder;
import com.google.cloud.contentwarehouse.v1.RuleSetServiceClient;
import com.google.cloud.contentwarehouse.v1.RuleSetServiceClient.ListRuleSetsPagedResponse;
import com.google.cloud.contentwarehouse.v1.RuleSetServiceSettings;
import com.google.cloud.resourcemanager.v3.Project;
import com.google.cloud.resourcemanager.v3.ProjectName;
import com.google.cloud.resourcemanager.v3.ProjectsClient;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeoutException;


public class CreateRuleSet {

  public static void createRuleSet() throws IOException, 
        InterruptedException, ExecutionException, TimeoutException { 
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-project-id";
    String location = "your-region"; // Format is "us" or "eu".
    createRuleSet(projectId, location);
  }

  public static void createRuleSet(String projectId, String location)
      throws IOException, InterruptedException, ExecutionException, TimeoutException {
    String projectNumber = getProjectNumber(projectId);

    String endpoint = "contentwarehouse.googleapis.com:443";
    if (!"us".equals(location)) {
      endpoint = String.format("%s-%s", location, endpoint);
    }
    RuleSetServiceSettings ruleSetServiceSettings =
        RuleSetServiceSettings.newBuilder().setEndpoint(endpoint).build();

    // Create a Rule Set Service Client 
    try (RuleSetServiceClient ruleSetServiceClient = 
        RuleSetServiceClient.create(ruleSetServiceSettings)) {
      /*  The full resource name of the location, e.g.:
      projects/{project_number}/locations/{location} */
      String parent = LocationName.format(projectNumber, location); 

      // Create a Delete Document Action to be added to the Rule Set 
      DeleteDocumentActionOrBuilder deleteDocumentAction = 
          DeleteDocumentAction.newBuilder().setEnableHardDelete(true).build();

      // Add Delete Document Action to Action Object 
      ActionOrBuilder action = Action.newBuilder()
            .setDeleteDocumentAction((DeleteDocumentAction) deleteDocumentAction).build();

      // Create rule to add to rule set 
      RuleOrBuilder rule = Rule.newBuilder()
          .setTriggerType(TriggerType.ON_CREATE)
          .setCondition("documentType == 'W9' && STATE =='CA' ")
          .addActions(0, (Action) action).build();

      // Create rule set and add rule to it
      RuleSetOrBuilder ruleSetOrBuilder = RuleSet.newBuilder()
          .setDescription("W9: Basic validation check rules.")
          .setSource("My Organization")
          .addRules((Rule) rule).build();

      // Create and prepare rule set request to client
      CreateRuleSetRequestOrBuilder createRuleSetRequest = 
          CreateRuleSetRequest.newBuilder()
              .setParent(parent)
              .setRuleSet((RuleSet) ruleSetOrBuilder).build();

      RuleSet response = ruleSetServiceClient.createRuleSet(
          (CreateRuleSetRequest) createRuleSetRequest);

      System.out.println("Rule set created: " + response.toString());

      ListRuleSetsRequestOrBuilder listRuleSetsRequest = 
          ListRuleSetsRequest.newBuilder()
              .setParent(parent).build();

      ListRuleSetsPagedResponse listRuleSetsPagedResponse = 
          ruleSetServiceClient.listRuleSets((ListRuleSetsRequest) listRuleSetsRequest);

      listRuleSetsPagedResponse.iterateAll().forEach(
          (ruleSet -> System.out.print(ruleSet))
      );
    }
  }

  private static String getProjectNumber(String projectId) throws IOException { 
    try (ProjectsClient projectsClient = ProjectsClient.create()) { 
      ProjectName projectName = ProjectName.of(projectId); 
      Project project = projectsClient.getProject(projectName);
      String projectNumber = project.getName(); // Format returned is projects/xxxxxx
      return projectNumber.substring(projectNumber.lastIndexOf("/") + 1);
    } 
  }
}

Mencantumkan RuleSet

Untuk mencantumkan set aturan dalam project, lakukan hal berikut:

REST

Permintaan:

# List all rule-sets for a project.
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/ruleSets

Respons

{
  "ruleSets": [
    {
      "description": "W9: Basic validation check rules.",
      "rules": [
        {
          "triggerType": "ON_CREATE",
          "condition": "documentType == 'W9' && STATE =='CA'",
          "actions": [
            {
              "actionId": "fcf79ae8-9a1f-4462-9262-eb2e7161350c",
              "dataValidation": {
                "conditions": {
                  "NAME": "NAME != ''",
                  "FILING_COST": "FILING_COST > 10.0"
                }
              }
            }
          ],
          "enabled": true
        }
      ],
      "name": "RULE_SET_NAME"
    }
  ]
}

Mendapatkan RuleSet

Untuk mendapatkan set aturan menggunakan nama set aturan, lakukan hal berikut:

REST

Permintaan:

# Get a rule-set using rule-set ID.
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/ruleSets/RULE_SET

Respons

{
  "description": "W9: Basic validation check rules.",
  "rules": [
    {
      "triggerType": "ON_CREATE",
      "condition": "documentType == 'W9' && STATE =='CA'",
      "actions": [
        {
          "actionId": "7559346b-ec9f-4143-ab1c-1912f5588807",
          "dataValidation": {
            "conditions": {
              "NAME": "NAME != ''",
              "FILING_COST": "FILING_COST > 10.0"
            }
          }
        }
      ],
      "enabled": true
    }
  ],
  "name": "RULE_SET_NAME"
}

Menghapus RuleSet

Untuk menghapus set aturan menggunakan nama set aturan, lakukan hal berikut:

REST

Permintaan:

# Get a rule-set using rule-set ID.
curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/ruleSets/RULE_SET

Tindakan Aturan

Bagian ini akan membahas ekspresi aturan dan setiap contoh tindakan aturan.

Contoh kondisi

Kondisi mengacu pada ekspresi yang ditentukan menggunakan Common Expression Language.

Contoh:

  • Ekspresi kolom string
    • STATE == \'CA\'. Periksa apakah nilai kolom STATE sama dengan CA
    • NAME != \'\'. Periksa apakah nilai kolom NAME tidak kosong.
  • Ekspresi kolom angka
    • FILING_COST > 10.0. Periksa apakah nilai kolom FILING_COST (ditetapkan sebagai float) lebih besar dari 10.0.

Cara memeriksa apakah dokumen termasuk dalam skema tertentu

Untuk merujuk ke jenis skema tertentu, gunakan nama kolom khusus documentType (ini adalah kata yang dicadangkan). Nilai ini dievaluasi terhadap kolom DisplayName di DocumentSchema.

Contoh:

  • documentType == \'W9\'

Kondisi sebelumnya memeriksa apakah skema dokumen (menggunakan kata kunci documentType) memiliki nama tampilan W9.

Cara merujuk ke nilai properti dokumen lama/yang ada dan nilai properti dokumen baru

Untuk mendukung kondisi yang mencakup properti yang ada dan yang baru diberikan, gunakan dua awalan berikut dengan operator DOT untuk mengakses versi properti tertentu:

  • OLD_ untuk merujuk ke properti dokumen yang ada.
  • NEW_ untuk merujuk ke properti dokumen baru dalam permintaan.

Contoh:

  • OLD_.state == \'TX\' && NEW_.state == \'CA\' Memeriksa bahwa nilai properti status yang ada adalah TX dan nilai baru yang diberikan adalah CA.

Penanganan kolom tanggal

Untuk DriverLicense Dokumen, jika EXPIRATION_DATE sebelum tanggal tertentu

  • Perbarui (atau tambahkan yang baru jika tidak ada) EXPIRATION_STATUS (kolom enum) dengan nilai yang sama dengan EXPIRING_BEFORE_CLOSING_DATE.

Untuk menambahkan nilai tanggal, gunakan fungsi stempel waktu seperti yang ditunjukkan pada contoh berikut.

REST

Permintaan:

# Check if document expires before a date and update the status field
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/ruleSets \
-d '{
  "rules":[
    {
      "trigger_type": "ON_CREATE",
      "description": "Expiration date check rule",
      "condition": "documentType==\'DriverLicense\' && EXPIRATION_DATE  < timestamp(\'2021-08-01T00:00:00Z\')",
      "actions": {
        "data_update": {
          "entries": {
            "EXPIRATION_STATUS": "EXPIRING_BEFORE_CLOSING_DATE"
          }
        }
      }
    }
  ]
}'

Aturan validasi data

Validasi dokumen W9 untuk STATE (kolom teks) California:

  • Pastikan NAME (kolom teks) tidak kosong.
  • Pastikan FILING_COST (kolom float) lebih besar dari 10.0.

REST

Permintaan:

# Rules for data validation.
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/ruleSets \
-d '{
  "rules": [
    {
      "trigger_type": "ON_CREATE",
      "condition": "documentType == \'W9\' && STATE ==\'CA\'",
      "actions": {
        "data_validation": {
          "conditions": {
            "NAME": "NAME != \'\'",
            "FILING_COST": "FILING_COST > 10.0"
          }
        }
      },
      "enabled": true
    }
  ],
  "description": "W9: Basic validation check rules."
}'

Aturan pembaruan data

Untuk dokumen W9, jika kolom BUSINESS_NAME adalah Google:

  • Perbarui (atau tambahkan yang baru jika tidak ada) kolom Address yang sama dengan 1600 Amphitheatre Pkwy.
  • Perbarui (atau tambahkan yang baru jika tidak ada) kolom EIN yang sama dengan 77666666.

REST

Permintaan:

# Rule for data update.
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/ruleSets \
-d '{
  "rules":[
    {
      "description": "W9: Rule to update address data and EIN.",
      "trigger_type": "ON_CREATE",
      "condition": "documentType==\'W9\' && BUSINESS_NAME == \'Google\'",
      "actions": {
        "data_update": {
          "entries": {
            "Address": "1600 Amphitheatre Pkwy",
            "EIN": "776666666"
          }
        }
      }
    }
  ]
}'

Aturan penghapusan dokumen

Saat memperbarui dokumen W9, jika kolom BUSINESS_NAME diubah menjadi Google, hapus dokumen.

REST

Permintaan:

# Rule for deleting the document
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/ruleSets \
-d '{
  "rules": [
    {
      "description": "W9: Rule to delete the document during update.",
      "trigger_type": "ON_UPDATE",
      "condition": "documentType == \'W9\' && BUSINESS_NAME == \'Google\'",
      "actions": {
        "delete_document_action": {
          "enable_hard_delete": true
        }
      }
    }
  ]
}'

Aturan kontrol akses

Saat memperbarui dokumen W9, jika kolom BUSINESS_NAME adalah Google, perbarui binding kebijakan yang mengontrol akses ke dokumen

Menambahkan binding baru

Jika dokumen memenuhi kondisi aturan:

  • Menambahkan peran Editor untuk user:a@example.com dan group:xxx@example.com
  • Menambahkan peran Pelihat untuk user:b@example.com dan group:yyy@example.com

REST

Permintaan:

# Rule for adding new policy binding while creating the document.
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/ruleSets \
-d '{
  "rules": [
    {
      "description": "W9: Rule to add new policy binding."
      "trigger_type": "ON_CREATE",
      "condition": "documentType == \'aca13aa9-6d0d-4b6b-a1eb-315dcb876bd1\' && BUSINESS_NAME == \'Google\'",
      "actions": {
        "access_control": {
          "operation_type": "ADD_POLICY_BINDING",
          "policy": {
            "bindings": [
              {
                "role": "roles/contentwarehouse.documentEditor",
                "members": ["user:a@example.com", "group:xxx@example.com"]
              },
              {
                "role": "roles/contentwarehouse.documentViewer",
                "members": ["user:b@example.com", "group:yyy@example.com"]
              }
            ]
          }
        }
      }
    }
  ]
}'

Mengganti binding yang ada

Jika dokumen memenuhi kondisi aturan, ganti binding yang ada untuk menyertakan hanya peran Editor untuk user:a@example.com dan group:xxx@example.com.

REST

Permintaan:

# Rule for replacing existing policy bindings with newly given bindings.
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/ruleSets \
-d '{
  "rules": [
    {
      "description": "W9: Rule to replace policy binding."
      "trigger_type": "ON_CREATE",
      "condition": "documentType == \'a9e37d07-9cfa-4b4d-b372-53162e3b8bd9\' && BUSINESS_NAME == \'Google\'",
      "actions": {
        "access_control": {
          "operation_type": "REPLACE_POLICY_BINDING",
          "policy": {
            "bindings": [
              {
                "role": "roles/contentwarehouse.documentEditor",
                "members": ["user:a@example.com", "group:xxx@example.com"]
              }
            ]
          }
        }
      }
    }
  ]
}'

Aturan tambahkan ke folder

Saat folder dibuat atau diperbarui, folder tersebut dapat ditambahkan di folder statis yang telah ditentukan sebelumnya atau folder yang cocok dengan kriteria penelusuran tertentu.

Mengonfigurasi folder statis

Saat DriverLicense baru dibuat, tambahkan DriverLicense tersebut ke folder yang sudah dibuat.

REST

Permintaan:

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/ruleSets \
-d '{
  "rules": [
    {
      "trigger_type": "ON_CREATE",
      "condition": "documentType == \'DriverLicense\'",
      "actions": {
        "add_to_folder": {
          "folders": ["projects/821411934445/locations/us/documents/445en119hqp70"]
        }
      }
    }
  ]
}'

Publikasikan ke Pub/Sub

Saat dokumen dibuat atau diperbarui, atau link dibuat atau dihapus, Anda dapat mengirimkan pesan notifikasi ke saluran Pub/Sub.

Langkah-langkah penggunaan

  • Buat topik Pub/Sub di project Pelanggan.
  • Buat aturan untuk memicu tindakan Pub/Sub publikasi menggunakan permintaan berikut. (Lihat contoh berikut.)
  • Panggil Document AI Warehouse API.
  • Pastikan bahwa pesan dipublikasikan di saluran Pub/Sub.

Contoh aturan

Saat dokumen ditambahkan di folder (CreateLink API dipanggil), aturan berikut dapat digunakan untuk mengirim pesan notifikasi ke topik Pub/Sub.

REST

Permintaan:

curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
https://contentwarehouse.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION/ruleSets \
-d '{
  "rules": [
    {
      "trigger_type": "ON_CREATE_LINK",
      "condition": "documentType == \'DriverLicenseFolder\'",
      "actions": {
        "publish_to_pub_sub": {
          "topic_id": "<topic_name>"
          "messages": "Added document under a folder."
        }
      }
    }
  ]
}'

Detail aturan

  • Tindakan ini didukung untuk jenis pemicu berikut:

    • ON_CRATE: Saat dokumen baru dibuat.
    • ON_UPDATE: Saat dokumen diperbarui.
    • ON_CRATE_LINK: Saat link baru dibuat.
    • ON_DELETE_LINK: Saat link dihapus.
  • Untuk pemicu Buat dan Perbarui Dokumen, kondisi dapat mencakup atribut dokumen yang sedang dibuat atau diperbarui.

  • Untuk pemicu Buat dan Hapus Link, kondisi hanya dapat menyertakan atribut dokumen Folder tempat dokumen ditambahkan atau dihapus.

  • Kolommessages dapat digunakan untuk mengirim daftar pesan ke saluran Pub/Sub. Perhatikan bahwa bersama dengan pesan ini, secara default, kolom berikut juga dipublikasikan:

    • Nama skema, Nama dokumen, Jenis pemicu, Nama RuleSet, ID aturan, ID tindakan.
    • Untuk pemicu link Buat dan Hapus, notifikasi menyertakan informasi link relevan yang sedang ditambahkan atau dihapus.