This document shows you how to validate schemas for Pub/Sub topics.
You can validate that messages adhere to a certain schema, before or after you create a schema resource. This step ensures that the messages you intend to send through a topic associated with a schema actually match before applying the schema.
Before you begin
- Understand how Pub/Sub schemas work .
- Create a schema .
Required roles and permissions
To get the permissions that
      you need to validate schema messages and manage them,
    
      ask your administrator to grant you the Pub/Sub Editor 
( roles/pubsub.editor 
)
     IAM role on your project.
  
  
  
  
  For more information about granting roles, see Manage access to projects, folders, and organizations 
.
This predefined role contains the permissions required to validate schema messages and manage them. To see the exact permissions that are required, expand the Required permissionssection:
Required permissions
The following permissions are required to validate schema messages and manage them:
- Create schema: pubsub.schemas.create
- Attach schema to topic: pubsub.schemas.attach
- Commit a schema revision: pubsub.schemas.commit
- Delete a schema or a schema revision: pubsub.schemas.delete
- Get a schema or schema revisions: pubsub.schemas.get
- List schemas: pubsub.schemas.list
- List schema revisions: pubsub.schemas.listRevisions
- Rollback a schema: pubsub.schemas.rollback
- Validate a message: pubsub.schemas.validate
- Get the IAM policy for a schema: pubsub.schemas.getIamPolicy
- Configure the IAM policy 
for a schema: pubsub.schemas.setIamPolicy
You might also be able to get these permissions with custom roles or other predefined roles .
You can grant roles and permissions to principals such as users, groups, domains, or service accounts. You can create a schema in one project and attach it to a topic located in a different project. Ensure that you have the required permissions for each project.
Validate a message for a schema
Console
-  In the Google Cloud console, go to the Pub/Sub schemaspage. The list of schemas is displayed. 
-  Click the Schema IDof an existing schema. The Schema detailspage for the schema opens. 
-  In the Revisionssection, click the revision for which you want to validate a message. 
-  In the Detailssection, click Test message. 
-  In the Test messagewindow, select a type of Message encoding. 
-  In the Messagebody, enter a test message. 
-  Click Test. 
gcloud
-  In the Google Cloud console, activate Cloud Shell. At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize. 
- To validate a message against a schema use the gcloud pubsub schemas validate-message 
command. gcloud pubsub schemas validate-message --message= MESSAGE \ --message-encoding= MESSAGE_ENCODING \ (--schema-name= SCHEMA_NAME | \ --type= TYPE \ (--definition= DEFINITION | \ --definition-file= DEFINITION_FILE )) Replace the following: -  MESSAGE : message to validate against the schema 
-  MESSAGE_ENCODING : encoding of the message. Specify one of the following values: binaryorjson.
-  SCHEMA_NAME : name or full path of an existing schema. 
-  TYPE : type of inline schema. Specify one of the following values: avroorprotocol-buffer.
-  DEFINITION : inline schema definition. 
-  DEFINITION_FILE : file containing the schema definition. 
 
-  

