Manage document schemas

This document describes how to manage the document schemas in Document AI Warehouse, including create, fetch, list, update, and delete operations.

What are document schemas

Each document is of a certain document type and is specified by a schema.

A document schema defines the structure for a document type (for example, Invoice or Paystub) in Document AI Warehouse, where admins can specify Properties of different data types (Text | Numeric | Date | Enumeration).

Properties are used to represent the extracted data, classification tags or other business tags appended to documents by AI or human users - for example, Invoice_Amount (numeric), Due_Date (date), or Supplier_Name (text).

  1. Property Attributes:Each property can be declared as

    1. Filterable - can be used to filter search results

    2. Searchable - indexed so it can be found in search queries

    3. Required - required is used to ensure the property exists in the document (We recommend saving most properties as required = false , unless the property is required.)

  2. Extensible Schema:in some cases, end users with Edit access need to add / delete new schema properties to documents. This is supported by a "MAP property", which is a list of key-value pairs.

    1. Each key-value pair in a MAP property can be a data-type of (Text | Numeric | Date | Enumeration).

    2. For example, Invoice may contain a Map Property "Invoice_Entities" with the following key value pairs:

      • Invoice_Amount (numeric) 1000

      • Due_Date (date) 12/24/2021

      • Supplier_Name (text) ABC Corp

    3. Immutability of Schema:Note that Schema or Schema Properties can be added but currently cannot be edited or deleted, so define schema carefully.

Before you begin

Before you begin, make sure you have completed the Quickstart page.

Create a schema

Create a document schema.

REST

   
curl  
--location  
--request  
POST  
--url  
https://contentwarehouse.googleapis.com/v1/projects/ PROJECT_NUMBER 
/locations/ LOCATION 
/documentSchemas  
 \ 
  
--header  
 "Content-Type: application/json" 
  
 \ 
  
--header  
 "Authorization: Bearer 
 $( 
gcloud  
auth  
print-access-token ) 
 " 
  
 \ 
  
--data  
 '{ 
 "display_name": "Test Doc Schema", 
 "property_definitions": [ 
 { 
 "name": "plaintiff", 
 "display_name": "Plaintiff", 
 "is_searchable": true, 
 "is_repeatable": true, 
 "text_type_options": {} 
 } 
 ] 
 }' 
 

Python

For more information, see the Document AI Warehouse Python API reference documentation .

To authenticate to Document AI Warehouse, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  from 
  
 google.cloud 
  
 import 
 contentwarehouse 
 # TODO(developer): Uncomment these variables before running the sample. 
 # project_number = 'YOUR_PROJECT_NUMBER' 
 # location = 'YOUR_PROJECT_LOCATION' # Format is 'us' or 'eu' 
 def 
  
 sample_create_document_schema 
 ( 
 project_number 
 : 
 str 
 , 
 location 
 : 
 str 
 ) 
 - 
> None 
 : 
  
 """Creates document schema. 
 Args: 
 project_number: Google Cloud project number. 
 location: Google Cloud project location. 
 Returns: 
 Response object. 
 """ 
 # Create a Schema Service client. 
 document_schema_client 
 = 
 contentwarehouse 
 . 
  DocumentSchemaServiceClient 
 
 () 
 property_definition 
 = 
 contentwarehouse 
 . 
  PropertyDefinition 
 
 ( 
 name 
 = 
 "stock_symbol" 
 , 
 # Must be unique within a document schema (case insensitive) 
 display_name 
 = 
 "Searchable text" 
 , 
 is_searchable 
 = 
 True 
 , 
 text_type_options 
 = 
 contentwarehouse 
 . 
  TextTypeOptions 
 
 (), 
 ) 
 # Initialize request argument(s) 
 document_schema 
 = 
 contentwarehouse 
 . 
  DocumentSchema 
 
 ( 
 display_name 
 = 
 "My Test Schema" 
 , 
 property_definitions 
 = 
 [ 
 property_definition 
 ], 
 ) 
 request 
 = 
 contentwarehouse 
 . 
  CreateDocumentSchemaRequest 
 
 ( 
 # The full resource name of the location, e.g.: 
 # projects/{project_number}/locations/{location}/ 
 parent 
 = 
 document_schema_client 
 . 
  common_location_path 
 
 ( 
 project_number 
 , 
 location 
 ), 
 document_schema 
 = 
 document_schema 
 , 
 ) 
 # Make the request 
 response 
 = 
 document_schema_client 
 . 
  create_document_schema 
 
 ( 
 request 
 = 
 request 
 ) 
 # Print response 
 print 
 ( 
 "Document Schema Created:" 
 , 
 response 
 ) 
 return 
 response 
 

Java

For more information, see the Document AI Warehouse Java API reference documentation .

To authenticate to Document AI Warehouse, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  import 
  
 com.google.cloud.contentwarehouse.v1. CreateDocumentSchemaRequest 
 
 ; 
 import 
  
 com.google.cloud.contentwarehouse.v1. DocumentSchema 
 
 ; 
 import 
  
 com.google.cloud.contentwarehouse.v1. DocumentSchemaServiceClient 
 
 ; 
 import 
  
 com.google.cloud.contentwarehouse.v1. DocumentSchemaServiceSettings 
 
 ; 
 import 
  
 com.google.cloud.contentwarehouse.v1. LocationName 
 
 ; 
 import 
  
 com.google.cloud.contentwarehouse.v1. PropertyDefinition 
 
 ; 
 import 
  
 com.google.cloud.contentwarehouse.v1. TextTypeOptions 
 
 ; 
 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 
 CreateDocumentSchema 
  
 { 
  
 public 
  
 static 
  
 void 
  
 createDocumentSchema 
 () 
  
 throws 
  
 IOException 
 , 
  
  
 InterruptedException 
 , 
  
 ExecutionException 
 , 
  
 TimeoutException 
  
 { 
  
 String 
  
 projectId 
  
 = 
  
 "your-project-id" 
 ; 
  
 String 
  
 location 
  
 = 
  
 "your-region" 
 ; 
  
 // Format is "us" or "eu". 
  
 createDocumentSchema 
 ( 
 projectId 
 , 
  
 location 
 ); 
  
 } 
  
 // Creates a new Document Schema 
  
 public 
  
 static 
  
 void 
  
 createDocumentSchema 
 ( 
 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 
 ); 
  
 } 
  
  DocumentSchemaServiceSettings 
 
  
 documentSchemaServiceSettings 
  
 = 
  
  
  DocumentSchemaServiceSettings 
 
 . 
 newBuilder 
 (). 
 setEndpoint 
 ( 
 endpoint 
 ). 
 build 
 (); 
  
  
 // Create a Schema Service client 
  
 try 
  
 ( 
  DocumentSchemaServiceClient 
 
  
 documentSchemaServiceClient 
  
 = 
  
  DocumentSchemaServiceClient 
 
 . 
 create 
 ( 
 documentSchemaServiceSettings 
 )) 
  
 { 
  
 /*  The full resource name of the location, e.g.: 
 projects/{project_number}/locations/{location} */ 
  
 String 
  
 parent 
  
 = 
  
  LocationName 
 
 . 
 format 
 ( 
 projectNumber 
 , 
  
 location 
 ); 
  
 /* Create Document Schema with Text Type Property Definition 
 * More detail on managing Document Schemas: 
 * https://cloud.google.com/document-warehouse/docs/manage-document-schemas */ 
  
  DocumentSchema 
 
  
 documentSchema 
  
 = 
  
  DocumentSchema 
 
 . 
 newBuilder 
 () 
  
 . 
 setDisplayName 
 ( 
 "Test Doc Schema" 
 ) 
  
 . 
 setDescription 
 ( 
 "Test Doc Schema's Description" 
 ) 
  
 . 
 addPropertyDefinitions 
 ( 
  
  PropertyDefinition 
 
 . 
 newBuilder 
 () 
  
 . 
 setName 
 ( 
 "plaintiff" 
 ) 
  
 . 
 setDisplayName 
 ( 
 "Plaintiff" 
 ) 
  
 . 
  setIsSearchable 
 
 ( 
 true 
 ) 
  
 . 
  setIsRepeatable 
 
 ( 
 true 
 ) 
  
 . 
  setTextTypeOptions 
 
 ( 
  TextTypeOptions 
 
 . 
 newBuilder 
 (). 
 build 
 ()) 
  
 . 
 build 
 ()). 
 build 
 (); 
  
 // Define Document Schema request 
  
  CreateDocumentSchemaRequest 
 
  
 createDocumentSchemaRequest 
  
 = 
  
  CreateDocumentSchemaRequest 
 
 . 
 newBuilder 
 () 
  
 . 
 setParent 
 ( 
 parent 
 ) 
  
 . 
 setDocumentSchema 
 ( 
 documentSchema 
 ). 
 build 
 (); 
  
 // Create Document Schema 
  
  DocumentSchema 
 
  
 documentSchemaResponse 
  
 = 
  
 documentSchemaServiceClient 
 . 
 createDocumentSchema 
 ( 
 createDocumentSchemaRequest 
 ); 
  
  
 System 
 . 
 out 
 . 
 println 
 ( 
 documentSchemaResponse 
 . 
  getName 
 
 ()); 
  
 } 
  
 } 
  
 private 
  
 static 
  
 String 
  
 getProjectNumber 
 ( 
 String 
  
 projectId 
 ) 
  
 throws 
  
 IOException 
  
 { 
  
  
 /* Initialize client that will be used to send requests. 
 * This client only needs to be created once, and can be reused for multiple requests. */ 
  
 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 
 ); 
  
 } 
  
  
 } 
 } 
 

Node.js

For more information, see the Document AI Warehouse Node.js API reference documentation .

To authenticate to Document AI Warehouse, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  /** 
 * TODO(developer): Uncomment these variables before running the sample. 
 * const projectNumber = 'YOUR_PROJECT_NUMBER'; 
 * const location = 'YOUR_PROJECT_LOCATION'; // Format is 'us' or 'eu' 
 */ 
 // Import from google cloud 
 const 
  
 { 
 DocumentSchemaServiceClient 
 } 
  
 = 
  
 require 
 ( 
 ' @google-cloud/contentwarehouse 
' 
 ). 
 v1 
 ; 
 const 
  
 apiEndpoint 
  
 = 
  
 location 
  
 === 
  
 'us' 
  
 ? 
  
 'contentwarehouse.googleapis.com' 
  
 : 
  
 ` 
 ${ 
 location 
 } 
 -contentwarehouse.googleapis.com` 
 ; 
 // Create service client 
 const 
  
 serviceClient 
  
 = 
  
 new 
  
  DocumentSchemaServiceClient 
 
 ({ 
  
 apiEndpoint 
 : 
  
 apiEndpoint 
 , 
 }); 
 // Create Document Schema 
 async 
  
 function 
  
 createDocumentSchema 
 () 
  
 { 
  
 // The full resource name of the location, e.g.: 
  
 // projects/{project_number}/locations/{location} 
  
 const 
  
 parent 
  
 = 
  
 `projects/ 
 ${ 
 projectNumber 
 } 
 /locations/ 
 ${ 
 location 
 } 
 ` 
 ; 
  
 // Initialize request argument(s) 
  
 const 
  
 request 
  
 = 
  
 { 
  
 parent 
 : 
  
 parent 
 , 
  
 // Document Schema 
  
 documentSchema 
 : 
  
 { 
  
 displayName 
 : 
  
 'My Test Schema' 
 , 
  
 // Property Definition 
  
 propertyDefinitions 
 : 
  
 [ 
  
 { 
  
 name 
 : 
  
 'testPropertyDefinitionName' 
 , 
  
 // Must be unique within a document schema (case insensitive) 
  
 displayName 
 : 
  
 'searchable text' 
 , 
  
 isSearchable 
 : 
  
 true 
 , 
  
 textTypeOptions 
 : 
  
 {}, 
  
 }, 
  
 ], 
  
 }, 
  
 }; 
  
 // Make Request 
  
 const 
  
 response 
  
 = 
  
 serviceClient 
 . 
 createDocumentSchema 
 ( 
 request 
 ); 
  
 // Print out response 
  
 response 
 . 
 then 
 ( 
  
 result 
  
 = 
>  
 console 
 . 
 log 
 ( 
 `Document Schema Created: 
 ${ 
 JSON 
 . 
 stringify 
 ( 
 result 
 ) 
 } 
 ` 
 ), 
  
 error 
  
 = 
>  
 console 
 . 
 log 
 ( 
 ` 
 ${ 
 error 
 } 
 ` 
 ) 
  
 ); 
 } 
 

Get a schema

Get details of a document schema.

REST

   
curl  
--request  
GET  
--url  
https://contentwarehouse.googleapis.com/v1/projects/ PROJECT_NUMBER 
/locations/ LOCATION 
/documentSchemas/ { 
document_schema_id } 
  
 \ 
  
--header  
 "Authorization: Bearer 
 $( 
gcloud  
auth  
print-access-token ) 
 " 
  
 \ 
  
--header  
 "Content-Type: application/json; charset=UTF-8" 
 

Python

For more information, see the Document AI Warehouse Python API reference documentation .

To authenticate to Document AI Warehouse, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  from 
  
 google.cloud 
  
 import 
 contentwarehouse 
 # TODO(developer): Uncomment these variables before running the sample. 
 # project_number = 'YOUR_PROJECT_NUMBER' 
 # location = 'YOUR_PROJECT_LOCATION' # Format is 'us' or 'eu' 
 # document_schema_id = "YOUR_DOCUMENT SCHEMA_ID" 
 def 
  
 sample_get_document_schema 
 ( 
 project_number 
 : 
 str 
 , 
 location 
 : 
 str 
 , 
 document_schema_id 
 : 
 str 
 ) 
 - 
> None 
 : 
  
 """Gets document schema details. 
 Args: 
 project_number: Google Cloud project number. 
 location: Google Cloud project location. 
 document_schema_id: Unique identifier for document schema 
 Returns: 
 Response object. 
 """ 
 # Create a Schema Service client. 
 document_schema_client 
 = 
 contentwarehouse 
 . 
  DocumentSchemaServiceClient 
 
 () 
 # The full resource name of the location, e.g.: 
 # projects/{project_number}/locations/{location}/documentSchemas/{document_schema_id} 
 document_schema_path 
 = 
 document_schema_client 
 . 
  document_schema_path 
 
 ( 
 project 
 = 
 project_number 
 , 
 location 
 = 
 location 
 , 
 document_schema 
 = 
 document_schema_id 
 , 
 ) 
 # Initialize request argument(s) 
 request 
 = 
 contentwarehouse 
 . 
  GetDocumentSchemaRequest 
 
 ( 
 name 
 = 
 document_schema_path 
 , 
 ) 
 # Make the request 
 response 
 = 
 document_schema_client 
 . 
  get_document_schema 
 
 ( 
 request 
 = 
 request 
 ) 
 # Handle the response 
 print 
 ( 
 "Document Schema:" 
 , 
 response 
 ) 
 return 
 response 
 

Java

For more information, see the Document AI Warehouse Java API reference documentation .

To authenticate to Document AI Warehouse, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  import 
  
 com.google.cloud.contentwarehouse.v1. DocumentSchema 
 
 ; 
 import 
  
 com.google.cloud.contentwarehouse.v1. DocumentSchemaName 
 
 ; 
 import 
  
 com.google.cloud.contentwarehouse.v1. DocumentSchemaServiceClient 
 
 ; 
 import 
  
 com.google.cloud.contentwarehouse.v1. DocumentSchemaServiceSettings 
 
 ; 
 import 
  
 com.google.cloud.contentwarehouse.v1. GetDocumentSchemaRequest 
 
 ; 
 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 
 GetDocumentSchema 
  
 { 
  
 public 
  
 static 
  
 void 
  
 getDocumentSchema 
 () 
  
 throws 
  
 IOException 
 , 
  
  
 InterruptedException 
 , 
  
 ExecutionException 
 , 
  
 TimeoutException 
  
 { 
  
 String 
  
 projectId 
  
 = 
  
 "your-project-id" 
 ; 
  
 String 
  
 location 
  
 = 
  
 "your-region" 
 ; 
  
 // Format is "us" or "eu". 
  
 String 
  
 documentSchemaId 
  
 = 
  
 "your-document-schema-id" 
 ; 
  
 getDocumentSchema 
 ( 
 projectId 
 , 
  
 location 
 , 
  
 documentSchemaId 
 ); 
  
 } 
  
 // Retrieves details about existing Document Schema 
  
 public 
  
 static 
  
 void 
  
 getDocumentSchema 
 ( 
 String 
  
 projectId 
 , 
  
 String 
  
 location 
 , 
  
  
 String 
  
 documentSchemaId 
 ) 
  
 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 
 ); 
  
 } 
  
  DocumentSchemaServiceSettings 
 
  
 documentSchemaServiceSettings 
  
 = 
  
  
  DocumentSchemaServiceSettings 
 
 . 
 newBuilder 
 (). 
 setEndpoint 
 ( 
 endpoint 
 ). 
 build 
 (); 
  
  
 // Create a Schema Service client 
  
 try 
  
 ( 
  DocumentSchemaServiceClient 
 
  
 documentSchemaServiceClient 
  
 = 
  
  DocumentSchemaServiceClient 
 
 . 
 create 
 ( 
 documentSchemaServiceSettings 
 )) 
  
 { 
  
 /* The full resource name of the location, e.g.: 
 projects/{project_number}/location/{location}/documentSchemas/{document_schema_id} */ 
  
  DocumentSchemaName 
 
  
 documentSchemaName 
  
 = 
  
  
  DocumentSchemaName 
 
 . 
 of 
 ( 
 projectNumber 
 , 
  
 location 
 , 
  
 documentSchemaId 
 ); 
  
 // Define request to get details of a specific Document Schema 
  
  GetDocumentSchemaRequest 
 
  
 getDocumentSchemaRequest 
  
 = 
  
  
  GetDocumentSchemaRequest 
 
 . 
 newBuilder 
 (). 
 setName 
 ( 
 documentSchemaName 
 . 
  toString 
 
 ()). 
 build 
 (); 
  
 // Get details of Document Schema 
  
  DocumentSchema 
 
  
 documentSchema 
  
 = 
  
  
 documentSchemaServiceClient 
 . 
 getDocumentSchema 
 ( 
 getDocumentSchemaRequest 
 ); 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 documentSchema 
 . 
  getName 
 
 ()); 
  
 } 
  
 } 
  
 private 
  
 static 
  
 String 
  
 getProjectNumber 
 ( 
 String 
  
 projectId 
 ) 
  
 throws 
  
 IOException 
  
 { 
  
  
 /* Initialize client that will be used to send requests. 
 * This client only needs to be created once, and can be reused for multiple requests. */ 
  
 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 
 ); 
  
 } 
  
  
 } 
 } 
 

Node.js

For more information, see the Document AI Warehouse Node.js API reference documentation .

To authenticate to Document AI Warehouse, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  /** 
 * TODO(developer): Uncomment these variables before running the sample. 
 * const projectNumber = 'YOUR_PROJECT_NUMBER'; 
 * const location = 'YOUR_PROJECT_LOCATION'; // Format is 'us' or 'eu' 
 * const schemaId = 'YOUR_DOCUMENT_SCHEMA_ID'; 
 */ 
 // Import from google cloud 
 const 
  
 { 
 DocumentSchemaServiceClient 
 } 
  
 = 
  
 require 
 ( 
 ' @google-cloud/contentwarehouse 
' 
 ). 
 v1 
 ; 
 const 
  
 apiEndpoint 
  
 = 
  
 location 
  
 === 
  
 'us' 
  
 ? 
  
 'contentwarehouse.googleapis.com' 
  
 : 
  
 ` 
 ${ 
 location 
 } 
 -contentwarehouse.googleapis.com` 
 ; 
 // Create service client 
 const 
  
 serviceClient 
  
 = 
  
 new 
  
  DocumentSchemaServiceClient 
 
 ({ 
  
 apiEndpoint 
 : 
  
 apiEndpoint 
 , 
 }); 
 // Get Document Schema 
 async 
  
 function 
  
 getDocumentSchema 
 () 
  
 { 
  
 // Initialize request argument(s) 
  
 const 
  
 request 
  
 = 
  
 {}; 
  
 // The full resource name of the location, e.g.: 
  
 // projects/{project_number}/locations/{location}/documentSchemas/{document_schema_id} 
  
 const 
  
 name 
  
 = 
  
 serviceClient 
 . 
 documentSchemaPath 
 ( 
  
 projectNumber 
 , 
  
 location 
 , 
  
 documentSchemaId 
  
 ); 
  
 request 
 . 
 name 
  
 = 
  
 name 
 ; 
  
 // Make Request 
  
 const 
  
 response 
  
 = 
  
 serviceClient 
 . 
 getDocumentSchema 
 ( 
 request 
 ); 
  
 // Print out response 
  
 response 
 . 
 then 
 ( 
  
 result 
  
 = 
>  
 console 
 . 
 log 
 ( 
 `Schema Found: 
 ${ 
 JSON 
 . 
 stringify 
 ( 
 result 
 ) 
 } 
 ` 
 ), 
  
 error 
  
 = 
>  
 console 
 . 
 log 
 ( 
 ` 
 ${ 
 error 
 } 
 ` 
 ) 
  
 ); 
 } 
 

List schemas

List document schemas.

REST

   
curl  
--request  
GET  
--url  
https://contentwarehouse.googleapis.com/v1/projects/ PROJECT_NUMBER 
/locations/ LOCATION 
/documentSchemas  
 \ 
  
--header  
 "Authorization: Bearer 
 $( 
gcloud  
auth  
print-access-token ) 
 " 
  
 \ 
  
--header  
 "Content-Type: application/json; charset=UTF-8" 
 

Python

For more information, see the Document AI Warehouse Python API reference documentation .

To authenticate to Document AI Warehouse, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  from 
  
 google.cloud 
  
 import 
 contentwarehouse 
 # TODO(developer): Uncomment these variables before running the sample. 
 # project_number = 'YOUR_PROJECT_NUMBER' 
 # location = 'YOUR_PROJECT_LOCATION' # Format is 'us' or 'eu' 
 def 
  
 sample_list_document_schemas 
 ( 
 project_number 
 : 
 str 
 , 
 location 
 : 
 str 
 ) 
 - 
> None 
 : 
  
 """Lists document schemas. 
 Args: 
 project_number: Google Cloud project number. 
 location: Google Cloud project location. 
 """ 
 # Create a client 
 document_schema_client 
 = 
 contentwarehouse 
 . 
  DocumentSchemaServiceClient 
 
 () 
 # The full resource name of the location, e.g.: 
 # projects/{project_number}/locations/{location} 
 parent 
 = 
 document_schema_client 
 . 
  common_location_path 
 
 ( 
 project 
 = 
 project_number 
 , 
 location 
 = 
 location 
 ) 
 # Initialize request argument(s) 
 request 
 = 
 contentwarehouse 
 . 
  ListDocumentSchemasRequest 
 
 ( 
 parent 
 = 
 parent 
 , 
 ) 
 # Make the request 
 page_result 
 = 
 document_schema_client 
 . 
  list_document_schemas 
 
 ( 
 request 
 = 
 request 
 ) 
 # Print response 
 responses 
 = 
 [] 
 print 
 ( 
 "Document Schemas:" 
 ) 
 for 
 response 
 in 
 page_result 
 : 
 print 
 ( 
 response 
 ) 
 responses 
 . 
 append 
 ( 
 response 
 ) 
 return 
 responses 
 

Java

For more information, see the Document AI Warehouse Java API reference documentation .

To authenticate to Document AI Warehouse, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  import 
  
 com.google.cloud.contentwarehouse.v1. DocumentSchema 
 
 ; 
 import 
  
 com.google.cloud.contentwarehouse.v1. DocumentSchemaServiceClient 
 
 ; 
 import 
  
 com.google.cloud.contentwarehouse.v1. DocumentSchemaServiceSettings 
 
 ; 
 import 
  
 com.google.cloud.contentwarehouse.v1. ListDocumentSchemasRequest 
 
 ; 
 import 
  
 com.google.cloud.contentwarehouse.v1. LocationName 
 
 ; 
 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 
 ListDocumentSchema 
  
 { 
  
 public 
  
 static 
  
 void 
  
 listDocumentSchemas 
 () 
  
 throws 
  
 IOException 
 , 
  
  
 InterruptedException 
 , 
  
 ExecutionException 
 , 
  
 TimeoutException 
  
 { 
  
 String 
  
 projectId 
  
 = 
  
 "your-project-id" 
 ; 
  
 String 
  
 location 
  
 = 
  
 "your-region" 
 ; 
  
 // Format is "us" or "eu". 
  
 listDocumentSchemas 
 ( 
 projectId 
 , 
  
 location 
 ); 
  
 } 
  
 // Retrieves all Document Schemas associated with a specified project 
  
 public 
  
 static 
  
 void 
  
 listDocumentSchemas 
 ( 
 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 
 ); 
  
 } 
  
  DocumentSchemaServiceSettings 
 
  
 documentSchemaServiceSettings 
  
 = 
  
  
  DocumentSchemaServiceSettings 
 
 . 
 newBuilder 
 (). 
 setEndpoint 
 ( 
 endpoint 
 ). 
 build 
 (); 
  
  
 // Create a Schema Service client 
  
 try 
  
 ( 
  DocumentSchemaServiceClient 
 
  
 documentSchemaServiceClient 
  
 = 
  
  DocumentSchemaServiceClient 
 
 . 
 create 
 ( 
 documentSchemaServiceSettings 
 )) 
  
 { 
  
 /*  The full resource name of the location, e.g.: 
 projects/{project_number}/locations/{location} */ 
  
 String 
  
 parent 
  
 = 
  
  LocationName 
 
 . 
 format 
 ( 
 projectNumber 
 , 
  
 location 
 ); 
  
 // Define request to list all Document Schemas 
  
  ListDocumentSchemasRequest 
 
  
 listDocumentSchemasRequest 
  
 = 
  
  
  ListDocumentSchemasRequest 
 
 . 
 newBuilder 
 (). 
 setParent 
 ( 
 parent 
 ). 
 build 
 (); 
  
 // Print each schema ID 
  
 for 
  
 ( 
  DocumentSchema 
 
  
 schema 
  
 : 
  
 documentSchemaServiceClient 
 . 
 listDocumentSchemas 
 ( 
 listDocumentSchemasRequest 
 ) 
  
 . 
 iterateAll 
 ()) 
  
 { 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 schema 
 . 
 getName 
 ()); 
  
 } 
  
 } 
  
 } 
  
 private 
  
 static 
  
 String 
  
 getProjectNumber 
 ( 
 String 
  
 projectId 
 ) 
  
 throws 
  
 IOException 
  
 { 
  
  
 /* Initialize client that will be used to send requests. 
 * This client only needs to be created once, and can be reused for multiple requests. */ 
  
 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 
 ); 
  
 } 
  
  
 } 
 } 
 

Delete a schema

Delete a document schema.

REST

   
curl  
--request  
DELETE  
--url  
https://contentwarehouse.googleapis.com/v1/projects/ PROJECT_NUMBER 
/locations/ LOCATION 
/documentSchemas/ { 
document_schema_id } 
  
 \ 
  
--header  
 "Authorization: Bearer 
 $( 
gcloud  
auth  
print-access-token ) 
 " 
  
 \ 
  
--header  
 "Content-Type: application/json; charset=UTF-8" 
 

Python

For more information, see the Document AI Warehouse Python API reference documentation .

To authenticate to Document AI Warehouse, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  from 
  
 google.cloud 
  
 import 
 contentwarehouse 
 # TODO(developer): Uncomment these variables before running the sample. 
 # project_number = 'YOUR_PROJECT_NUMBER' 
 # location = 'YOUR_PROJECT_LOCATION' # Format is 'us' or 'eu' 
 # document_schema_id = "YOUR_DOCUMENT SCHEMA_ID" 
 def 
  
 sample_delete_document_schema 
 ( 
 project_number 
 : 
 str 
 , 
 location 
 : 
 str 
 , 
 document_schema_id 
 : 
 str 
 ) 
 - 
> None 
 : 
  
 """Deletes document schema. 
 Args: 
 project_number: Google Cloud project number. 
 location: Google Cloud project location. 
 document_schema_id: Unique identifier for document schema 
 Returns: 
 None, if operation is successful 
 """ 
 # Create a client 
 document_schema_client 
 = 
 contentwarehouse 
 . 
  DocumentSchemaServiceClient 
 
 () 
 # The full resource name of the location, e.g.: 
 # projects/{project_number}/locations/{location}/documentSchemas/{document_schema_id} 
 document_schema_path 
 = 
 document_schema_client 
 . 
  document_schema_path 
 
 ( 
 project 
 = 
 project_number 
 , 
 location 
 = 
 location 
 , 
 document_schema 
 = 
 document_schema_id 
 , 
 ) 
 # Initialize request argument(s) 
 request 
 = 
 contentwarehouse 
 . 
  DeleteDocumentSchemaRequest 
 
 ( 
 name 
 = 
 document_schema_path 
 , 
 ) 
 # Make the request 
 response 
 = 
 document_schema_client 
 . 
  delete_document_schema 
 
 ( 
 request 
 = 
 request 
 ) 
 return 
 response 
 

Java

For more information, see the Document AI Warehouse Java API reference documentation .

To authenticate to Document AI Warehouse, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  import 
  
 com.google.cloud.contentwarehouse.v1. DeleteDocumentSchemaRequest 
 
 ; 
 import 
  
 com.google.cloud.contentwarehouse.v1. DocumentSchemaName 
 
 ; 
 import 
  
 com.google.cloud.contentwarehouse.v1. DocumentSchemaServiceClient 
 
 ; 
 import 
  
 com.google.cloud.contentwarehouse.v1. DocumentSchemaServiceSettings 
 
 ; 
 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 
 DeleteDocumentSchema 
  
 { 
  
 public 
  
 static 
  
 void 
  
 createDocumentSchema 
 () 
  
 throws 
  
 IOException 
 , 
  
  
 InterruptedException 
 , 
  
 ExecutionException 
 , 
  
 TimeoutException 
  
 { 
  
 String 
  
 projectId 
  
 = 
  
 "your-project-id" 
 ; 
  
 String 
  
 location 
  
 = 
  
 "your-region" 
 ; 
  
 // Format is "us" or "eu". 
  
 String 
  
 documentSchemaId 
  
 = 
  
 "your-schema-id" 
 ; 
  
 deleteDocumentSchema 
 ( 
 projectId 
 , 
  
 location 
 , 
  
 documentSchemaId 
 ); 
  
 } 
  
 // Creates a new Document Schema 
  
 public 
  
 static 
  
 void 
  
 deleteDocumentSchema 
 ( 
 String 
  
 projectId 
 , 
  
 String 
  
 location 
 , 
  
 String 
  
 documentSchemaId 
 ) 
  
 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 
 ); 
  
 } 
  
  DocumentSchemaServiceSettings 
 
  
 documentSchemaServiceSettings 
  
 = 
  
  
  DocumentSchemaServiceSettings 
 
 . 
 newBuilder 
 (). 
 setEndpoint 
 ( 
 endpoint 
 ). 
 build 
 (); 
  
  
 // Create a Schema Service client 
  
 try 
  
 ( 
  DocumentSchemaServiceClient 
 
  
 documentSchemaServiceClient 
  
 = 
  
  DocumentSchemaServiceClient 
 
 . 
 create 
 ( 
 documentSchemaServiceSettings 
 )) 
  
 { 
  
 /* The full resource name of the location, e.g.: 
 projects/{project_number}/location/{location}/documentSchemas/{document_schema_id} */ 
  
  DocumentSchemaName 
 
  
 documentSchemaName 
  
 = 
  
  
  DocumentSchemaName 
 
 . 
 of 
 ( 
 projectNumber 
 , 
  
 location 
 , 
  
 documentSchemaId 
 ); 
  
 /* Create request to delete Document Schema from provided schema ID. 
 * More detail on managing Document Schemas: 
 * https://cloud.google.com/document-warehouse/docs/manage-document-schemas */ 
  
  DeleteDocumentSchemaRequest 
 
  
 deleteDocumentSchemaRequest 
  
 = 
  
  
  DeleteDocumentSchemaRequest 
 
 . 
 newBuilder 
 () 
  
 . 
 setName 
 ( 
 documentSchemaName 
 . 
  toString 
 
 ()). 
 build 
 (); 
  
 // Delete Document Schema 
  
 documentSchemaServiceClient 
 . 
 deleteDocumentSchema 
 ( 
 deleteDocumentSchemaRequest 
 ); 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "Document Schema ID " 
  
 + 
  
 documentSchemaId 
  
 + 
  
 " has been deleted." 
 ); 
  
 } 
  
 } 
  
 private 
  
 static 
  
 String 
  
 getProjectNumber 
 ( 
 String 
  
 projectId 
 ) 
  
 throws 
  
 IOException 
  
 { 
  
  
 /* Initialize client that will be used to send requests. 
 * This client only needs to be created once, and can be reused for multiple requests. */ 
  
 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 
 ); 
  
 } 
  
  
 } 
 } 
 

Node.js

For more information, see the Document AI Warehouse Node.js API reference documentation .

To authenticate to Document AI Warehouse, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  /** 
 * TODO(developer): Uncomment these variables before running the sample. 
 * const projectId = 'YOUR_PROJECT_ID'; 
 * const location = 'YOUR_PROJECT_LOCATION'; // Format is 'us' or 'eu' 
 * const documentSchemaId = 'YOUR_DOCUMENT_SCHEMA_ID'; 
 */ 
 // Import from google cloud 
 const 
  
 { 
 DocumentSchemaServiceClient 
 } 
  
 = 
  
 require 
 ( 
 ' @google-cloud/contentwarehouse 
' 
 ). 
 v1 
 ; 
 const 
  
 apiEndpoint 
  
 = 
  
 location 
  
 === 
  
 'us' 
  
 ? 
  
 'contentwarehouse.googleapis.com' 
  
 : 
  
 ` 
 ${ 
 location 
 } 
 -contentwarehouse.googleapis.com` 
 ; 
 // Create service client 
 const 
  
 serviceClient 
  
 = 
  
 new 
  
  DocumentSchemaServiceClient 
 
 ({ 
  
 apiEndpoint 
 : 
  
 apiEndpoint 
 , 
 }); 
 // Delete Document Schema 
 async 
  
 function 
  
 deleteDocumentSchema 
 () 
  
 { 
  
 // Initialize request argument(s) 
  
 const 
  
 request 
  
 = 
  
 { 
  
 // The full resource name of the location, e.g.: 
  
 // projects/{project_number}/locations/{location}/documentSchemas/{document_schema_id} 
  
 name 
 : 
  
 `projects/ 
 ${ 
 projectId 
 } 
 /locations/ 
 ${ 
 location 
 } 
 /documentSchemas/ 
 ${ 
 documentSchemaId 
 } 
 ` 
 , 
  
 }; 
  
 // Make Request 
  
 const 
  
 response 
  
 = 
  
 await 
  
 serviceClient 
 . 
 deleteDocumentSchema 
 ( 
 request 
 ); 
  
 // Print out response 
  
 console 
 . 
 log 
 ( 
 `Document Schema Deleted: 
 ${ 
 JSON 
 . 
 stringify 
 ( 
 response 
 ) 
 } 
 ` 
 ); 
 } 
 

Update a schema

Update a document schema. Currently the update logic only supports adding new property definitions. The new document schema should include all property definitions present in the existing schema.

  • Supported:

    • For existing properties, users can change the following metadata settings: is_repeatable , is_metadata , is_required .
    • For existing ENUM properties, users can add new ENUM possible values or delete existing ENUM possible values. They can update the EnumTypeOptions.validation_check_disabled flag to disable the validation check. The validation check is used to make sure the ENUM values specified in the documents are in the range of possible ENUM values defined in the property definition when calling the CreateDocument API.
    • Adding new property definitions is supported.
  • Not supported:

    • For existing schema, updates to display_name and document_is_folder are not allowed.
    • For existing properties, updates to name , display_name and value_type_options are not allowed.

REST

 curl  
--request  
PATCH  
--url  
https://contentwarehouse.googleapis.com/v1/projects/ PROJECT_NUMBER 
/locations/ LOCATION 
/documentSchemas/ { 
document_schema_id } 
  
 \ 
--header  
 "Authorization: Bearer 
 $( 
gcloud  
auth  
print-access-token ) 
 " 
  
 \ 
--header  
 "Content-Type: application/json; charset=UTF-8" 
  
 \ 
--data  
 '{ 
 "document_schema": { 
 "display_name": "Test Doc Schema", 
 "property_definitions": [ 
 { 
 "name": "plaintiff", 
 "display_name": "Plaintiff", 
 "is_repeatable": true, 
 "text_type_options": {} 
 } 
 ] 
 } 
 }' 
 

Python

For more information, see the Document AI Warehouse Python API reference documentation .

To authenticate to Document AI Warehouse, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  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' 
 # document_schema_id = "YOUR_SCHEMA_ID" 
 def 
  
 update_document_schema 
 ( 
 project_number 
 : 
 str 
 , 
 location 
 : 
 str 
 , 
 document_schema_id 
 : 
 str 
 ) 
 - 
> None 
 : 
 # Create a Schema Service client 
 document_schema_client 
 = 
 contentwarehouse 
 . 
  DocumentSchemaServiceClient 
 
 () 
 # The full resource name of the location, e.g.: 
 # projects/{project_number}/locations/{location}/documentSchemas/{document_schema_id} 
 document_schema_path 
 = 
 document_schema_client 
 . 
  document_schema_path 
 
 ( 
 project 
 = 
 project_number 
 , 
 location 
 = 
 location 
 , 
 document_schema 
 = 
 document_schema_id 
 , 
 ) 
 # Define Schema Property of Text Type with updated values 
 updated_property_definition 
 = 
 contentwarehouse 
 . 
  PropertyDefinition 
 
 ( 
 name 
 = 
 "stock_symbol" 
 , 
 # Must be unique within a document schema (case insensitive) 
 display_name 
 = 
 "Searchable text" 
 , 
 is_searchable 
 = 
 True 
 , 
 is_repeatable 
 = 
 False 
 , 
 is_required 
 = 
 True 
 , 
 text_type_options 
 = 
 contentwarehouse 
 . 
  TextTypeOptions 
 
 (), 
 ) 
 # Define Update Document Schema Request 
 update_document_schema_request 
 = 
 contentwarehouse 
 . 
  UpdateDocumentSchemaRequest 
 
 ( 
 name 
 = 
 document_schema_path 
 , 
 document_schema 
 = 
 contentwarehouse 
 . 
  DocumentSchema 
 
 ( 
 display_name 
 = 
 "My Test Schema" 
 , 
 property_definitions 
 = 
 [ 
 updated_property_definition 
 ], 
 ), 
 ) 
 # Update Document schema 
 updated_document_schema 
 = 
 document_schema_client 
 . 
  update_document_schema 
 
 ( 
 request 
 = 
 update_document_schema_request 
 ) 
 # Read the output 
 print 
 ( 
 f 
 "Updated Document Schema: 
 { 
 updated_document_schema 
 } 
 " 
 ) 
 

Java

For more information, see the Document AI Warehouse Java API reference documentation .

To authenticate to Document AI Warehouse, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  import 
  
 com.google.cloud.contentwarehouse.v1. DocumentSchema 
 
 ; 
 import 
  
 com.google.cloud.contentwarehouse.v1. DocumentSchemaName 
 
 ; 
 import 
  
 com.google.cloud.contentwarehouse.v1. DocumentSchemaServiceClient 
 
 ; 
 import 
  
 com.google.cloud.contentwarehouse.v1. DocumentSchemaServiceSettings 
 
 ; 
 import 
  
 com.google.cloud.contentwarehouse.v1. PropertyDefinition 
 
 ; 
 import 
  
 com.google.cloud.contentwarehouse.v1. TextTypeOptions 
 
 ; 
 import 
  
 com.google.cloud.contentwarehouse.v1. UpdateDocumentSchemaRequest 
 
 ; 
 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 
 UpdateDocumentSchema 
  
 { 
  
 public 
  
 static 
  
 void 
  
 updateDocumentSchema 
 () 
  
 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". 
  
 String 
  
 documentSchemaId 
  
 = 
  
 "your-document-schema-id" 
 ; 
  
 /* The below method call retrieves details about the schema you are about to update. 
 * It is important to note that some properties cannot be edited or removed. 
 * For more information on managing document schemas, please see the below documentation. 
 * https://cloud.google.com/document-warehouse/docs/manage-document-schemas */ 
  
 GetDocumentSchema 
 . 
 getDocumentSchema 
 ( 
 projectId 
 , 
  
 location 
 , 
  
 documentSchemaId 
 ); 
  
 updateDocumentSchema 
 ( 
 projectId 
 , 
  
 location 
 , 
  
 documentSchemaId 
 ); 
  
 } 
  
 // Updates an existing Document Schema 
  
 public 
  
 static 
  
 void 
  
 updateDocumentSchema 
 ( 
 String 
  
 projectId 
 , 
  
 String 
  
 location 
 , 
  
  
 String 
  
 documentSchemaId 
 ) 
  
 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 
 ); 
  
 } 
  
  DocumentSchemaServiceSettings 
 
  
 documentSchemaServiceSettings 
  
 = 
  
  
  DocumentSchemaServiceSettings 
 
 . 
 newBuilder 
 (). 
 setEndpoint 
 ( 
 endpoint 
 ). 
 build 
 (); 
  
  
 /* Create the Schema Service Client 
 * Initialize client that will be used to send requests. 
 * This client only needs to be created once, and can be reused for multiple requests. */ 
  
 try 
  
 ( 
  DocumentSchemaServiceClient 
 
  
 documentSchemaServiceClient 
  
 = 
  
  
  DocumentSchemaServiceClient 
 
 . 
 create 
 ( 
 documentSchemaServiceSettings 
 )) 
  
 { 
  
 /* The full resource name of the location, e.g.: 
 projects/{project_number}/location/{location}/documentSchemas/{document_schema_id} */ 
  
  DocumentSchemaName 
 
  
 documentSchemaName 
  
 = 
  
  
  DocumentSchemaName 
 
 . 
 of 
 ( 
 projectNumber 
 , 
  
 location 
 , 
  
 documentSchemaId 
 ); 
  
 // Define the new Schema Property with updated values 
  
  PropertyDefinition 
 
  
 propertyDefinition 
  
 = 
  
  PropertyDefinition 
 
 . 
 newBuilder 
 () 
  
 . 
 setName 
 ( 
 "plaintiff" 
 ) 
  
 . 
 setDisplayName 
 ( 
 "Plaintiff" 
 ) 
  
 . 
  setIsSearchable 
 
 ( 
 true 
 ) 
  
 . 
  setIsRepeatable 
 
 ( 
 true 
 ) 
  
 . 
  setIsRequired 
 
 ( 
 false 
 ) 
  
 . 
  setTextTypeOptions 
 
 ( 
  TextTypeOptions 
 
 . 
 newBuilder 
 () 
  
 . 
 build 
 ()) 
  
 . 
 build 
 (); 
  
  DocumentSchema 
 
  
 updatedDocumentSchema 
  
 = 
  
  DocumentSchema 
 
 . 
 newBuilder 
 () 
  
 . 
 setDisplayName 
 ( 
 "Test Doc Schema" 
 ) 
  
  
 . 
 addPropertyDefinitions 
 ( 
 0 
 , 
  
 propertyDefinition 
 ). 
 build 
 (); 
  
 // Create the Request to Update the Document Schema 
  
  UpdateDocumentSchemaRequest 
 
  
 updateDocumentSchemaRequest 
  
 = 
  
  
  UpdateDocumentSchemaRequest 
 
 . 
 newBuilder 
 () 
  
 . 
 setName 
 ( 
 documentSchemaName 
 . 
  toString 
 
 ()) 
  
 . 
 setDocumentSchema 
 ( 
 updatedDocumentSchema 
 ) 
  
 . 
 build 
 (); 
  
 // Update Document Schema 
  
 updatedDocumentSchema 
  
 = 
  
  
 documentSchemaServiceClient 
 . 
 updateDocumentSchema 
 ( 
 updateDocumentSchemaRequest 
 ); 
  
 // Read the output of Updated Document Schema Name 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 updatedDocumentSchema 
 . 
  getName 
 
 ()); 
  
 } 
  
 } 
  
 private 
  
 static 
  
 String 
  
 getProjectNumber 
 ( 
 String 
  
 projectId 
 ) 
  
 throws 
  
 IOException 
  
 { 
  
  
 /* Initialize client that will be used to send requests. 
 * This client only needs to be created once, and can be reused for multiple requests. */ 
  
 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 
 ); 
  
 } 
  
  
 } 
 } 
 

Next steps

Create a Mobile Website
View Site in Mobile | Classic
Share by: