Constructor
new Schema(pubsub, id)
Parameters:
Name | Type | Description |
---|---|---|
pubsub |
PubSub |
The PubSub object creating this object. |
id |
id |
name or ID of the schema. |
Examples
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);
```
Members
id
The fully qualified name of this schema. We will qualify this if it's only an ID passed (assuming the parent project). Unfortunately, we might not be able to do that if our pubsub's client hasn't been initialized. In that case, we just set the id and get the name later.
pubsub
The parent PubSub instance of this topic instance.
Methods
(async) create(type, definition, optionsopt) → {Promise.<void>}
Create a schema.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
type |
SchemaType |
The type of the schema (Protobuf, Avro, etc). |
|
definition |
string |
The text describing the schema in terms of the type. |
|
options |
object |
<optional> |
Request configuration options, outlined here: https://googleapis.github.io/gax-nodejs/interfaces/CallOptions.html. |
Returns:
Type | Description |
---|---|
Promise.<void> |
Throws:
-
-
if the schema type is incorrect.
- Type
- Error
-
-
-
if the definition is invalid.
- Type
- Error
-
Example
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...}'
);
```
(async) delete(optionsopt) → {Promise.<void>}
Delete the schema from the project.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
options |
object |
<optional> |
Request configuration options, outlined here: https://googleapis.github.io/gax-nodejs/interfaces/CallOptions.html. |
Returns:
Type | Description |
---|---|
Promise.<void> |
(async) get(viewopt, optionsopt) → {Promise.<ISchema>}
Get full information about the schema from the service.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
view |
google.pubsub.v1.SchemaView |
<optional> |
The type of schema object requested, which should be an enum value from SchemaViews. Defaults to Full. |
options |
object |
<optional> |
Request configuration options, outlined here: https://googleapis.github.io/gax-nodejs/interfaces/CallOptions.html. |
Returns:
Type | Description |
---|---|
Promise.<ISchema> |
(async) 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.
Returns:
Type | Description |
---|---|
Promise.<string> |
a Promise that resolves to the full schema name |
(async) validateMessage(message, encoding, optionsopt) → {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 SchemaServiceClient GAPIC class directly, using your PubSub instance's configuration, via PubSub#getClientConfig.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
message |
string |
The message to validate. |
|
encoding |
Encoding | "JSON" | "BINARY" |
The encoding of the message to validate. |
|
options |
object |
<optional> |
Request configuration options, outlined here: https://googleapis.github.io/gax-nodejs/interfaces/CallOptions.html. |
Returns:
Type | Description |
---|---|
Promise.<void> |
Throws:
-
-
if the validation fails.
- Type
- Error
-
-
-
if other parameters are invalid.
- Type
- Error
-
(static) metadataFromMessage()
Translates the schema attributes in messages delivered from Pub/Sub. All resulting fields may end up being blank.