A Schema object allows you to interact with a Cloud Pub/Sub schema.
This should only be instantiated by the PubSub class. To obtain an instance for end user usage, call pubsub.schema().
Package
@google-cloud/pubsubExamples
Creating an instance of this class.
const {PubSub} = require('@google-cloud/pubsub');
const pubsub = new PubSub();
const schema = pubsub.schema('my-schema');
Getting the details of a schema. Note that Schema methods do not provide a callback interface. Use .then() or await.
const {PubSub} = require('@google-cloud/pubsub');
const pubsub = new PubSub();
const schema = pubsub.schema('my-schema');
schema.get(SchemaViews.Basic).then(console.log);
Constructors
(constructor)(pubsub, idOrName)
constructor(pubsub: PubSub, idOrName: string);
Constructs a new instance of the Schema
class
Parameters | |
---|---|
Name | Description |
pubsub |
PubSub
|
idOrName |
string
|
Properties
id
id: string;
name_
name_?: string;
pubsub
pubsub: PubSub;
Methods
create(type, definition, gaxOpts)
create(type: SchemaType, definition: string, gaxOpts?: CallOptions): Promise<void>;
Create a schema.
Parameters | |
---|---|
Name | Description |
type |
SchemaType
The type of the schema (Protobuf, Avro, etc). |
definition |
string
The text describing the schema in terms of the type. |
gaxOpts |
CallOptions
|
Returns | |
---|---|
Type | Description |
Promise<void> |
{Promise
|
Create a schema.
const {PubSub} = require('@google-cloud/pubsub');
const pubsub = new PubSub();
const schema = pubsub.schema('messageType');
await schema.create(
SchemaTypes.Avro,
'{...avro definition...}'
);
delete(gaxOpts)
delete(gaxOpts?: CallOptions): Promise<void>;
Delete the schema from the project.
Parameter | |
---|---|
Name | Description |
gaxOpts |
CallOptions
|
Returns | |
---|---|
Type | Description |
Promise<void> |
{Promise
|
formatName_(projectId, nameOrId)
static formatName_(projectId: string, nameOrId: string): string;
Parameters | |
---|---|
Name | Description |
projectId |
string
|
nameOrId |
string
|
Returns | |
---|---|
Type | Description |
string |
get(view, gaxOpts)
get(view?: SchemaView, gaxOpts?: CallOptions): Promise<ISchema>;
Get full information about the schema from the service.
Parameters | |
---|---|
Name | Description |
view |
SchemaView
The type of schema object requested, which should be an enum value from SchemaViews. Defaults to Full. |
gaxOpts |
CallOptions
|
Returns | |
---|---|
Type | Description |
Promise<ISchema> |
{Promise
|
getName()
getName(): Promise<string>;
Return the fully qualified name of this schema.
Note that we have to verify that we have a projectId before returning this, so we have to check that first.
{Promise
Returns | |
---|---|
Type | Description |
Promise<string> |
metadataFromMessage(attributes)
static metadataFromMessage(attributes: Attributes): SchemaMessageMetadata;
Translates the schema attributes in messages delivered from Pub/Sub. All resulting fields may end up being blank.
Parameter | |
---|---|
Name | Description |
attributes |
Attributes
|
Returns | |
---|---|
Type | Description |
SchemaMessageMetadata |
validateMessage(message, encoding, gaxOpts)
validateMessage(message: string, encoding: google.pubsub.v1.Encoding | keyof typeof google.pubsub.v1.Encoding, gaxOpts?: CallOptions): Promise<void>;
Validate a message against this schema's definition.
If you would like to validate a message against an arbitrary schema, please use the GAPIC class directly, using your PubSub instance's configuration, via .
Parameters | |
---|---|
Name | Description |
message |
string
The message to validate. |
encoding |
google.pubsub.v1.Encoding | keyof typeof google.pubsub.v1.Encoding
The encoding of the message to validate. |
gaxOpts |
CallOptions
|
Returns | |
---|---|
Type | Description |
Promise<void> |
{Promise
|