1*d5c09012SAndroid Build Coastguard Worker// Copyright 2023 Google LLC 2*d5c09012SAndroid Build Coastguard Worker// 3*d5c09012SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*d5c09012SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*d5c09012SAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*d5c09012SAndroid Build Coastguard Worker// 7*d5c09012SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*d5c09012SAndroid Build Coastguard Worker// 9*d5c09012SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*d5c09012SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*d5c09012SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*d5c09012SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*d5c09012SAndroid Build Coastguard Worker// limitations under the License. 14*d5c09012SAndroid Build Coastguard Worker 15*d5c09012SAndroid Build Coastguard Workersyntax = "proto3"; 16*d5c09012SAndroid Build Coastguard Worker 17*d5c09012SAndroid Build Coastguard Workerpackage google.pubsub.v1; 18*d5c09012SAndroid Build Coastguard Worker 19*d5c09012SAndroid Build Coastguard Workerimport "google/api/annotations.proto"; 20*d5c09012SAndroid Build Coastguard Workerimport "google/api/client.proto"; 21*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto"; 22*d5c09012SAndroid Build Coastguard Workerimport "google/api/resource.proto"; 23*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/empty.proto"; 24*d5c09012SAndroid Build Coastguard Workerimport "google/protobuf/timestamp.proto"; 25*d5c09012SAndroid Build Coastguard Worker 26*d5c09012SAndroid Build Coastguard Workeroption cc_enable_arenas = true; 27*d5c09012SAndroid Build Coastguard Workeroption csharp_namespace = "Google.Cloud.PubSub.V1"; 28*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/pubsub/apiv1/pubsubpb;pubsubpb"; 29*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true; 30*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "SchemaProto"; 31*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.pubsub.v1"; 32*d5c09012SAndroid Build Coastguard Workeroption php_namespace = "Google\\Cloud\\PubSub\\V1"; 33*d5c09012SAndroid Build Coastguard Workeroption ruby_package = "Google::Cloud::PubSub::V1"; 34*d5c09012SAndroid Build Coastguard Worker 35*d5c09012SAndroid Build Coastguard Worker// Service for doing schema-related operations. 36*d5c09012SAndroid Build Coastguard Workerservice SchemaService { 37*d5c09012SAndroid Build Coastguard Worker option (google.api.default_host) = "pubsub.googleapis.com"; 38*d5c09012SAndroid Build Coastguard Worker option (google.api.oauth_scopes) = 39*d5c09012SAndroid Build Coastguard Worker "https://www.googleapis.com/auth/cloud-platform," 40*d5c09012SAndroid Build Coastguard Worker "https://www.googleapis.com/auth/pubsub"; 41*d5c09012SAndroid Build Coastguard Worker 42*d5c09012SAndroid Build Coastguard Worker // Creates a schema. 43*d5c09012SAndroid Build Coastguard Worker rpc CreateSchema(CreateSchemaRequest) returns (Schema) { 44*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 45*d5c09012SAndroid Build Coastguard Worker post: "/v1/{parent=projects/*}/schemas" 46*d5c09012SAndroid Build Coastguard Worker body: "schema" 47*d5c09012SAndroid Build Coastguard Worker }; 48*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "parent,schema,schema_id"; 49*d5c09012SAndroid Build Coastguard Worker } 50*d5c09012SAndroid Build Coastguard Worker 51*d5c09012SAndroid Build Coastguard Worker // Gets a schema. 52*d5c09012SAndroid Build Coastguard Worker rpc GetSchema(GetSchemaRequest) returns (Schema) { 53*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 54*d5c09012SAndroid Build Coastguard Worker get: "/v1/{name=projects/*/schemas/*}" 55*d5c09012SAndroid Build Coastguard Worker }; 56*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "name"; 57*d5c09012SAndroid Build Coastguard Worker } 58*d5c09012SAndroid Build Coastguard Worker 59*d5c09012SAndroid Build Coastguard Worker // Lists schemas in a project. 60*d5c09012SAndroid Build Coastguard Worker rpc ListSchemas(ListSchemasRequest) returns (ListSchemasResponse) { 61*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 62*d5c09012SAndroid Build Coastguard Worker get: "/v1/{parent=projects/*}/schemas" 63*d5c09012SAndroid Build Coastguard Worker }; 64*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "parent"; 65*d5c09012SAndroid Build Coastguard Worker } 66*d5c09012SAndroid Build Coastguard Worker 67*d5c09012SAndroid Build Coastguard Worker // Lists all schema revisions for the named schema. 68*d5c09012SAndroid Build Coastguard Worker rpc ListSchemaRevisions(ListSchemaRevisionsRequest) 69*d5c09012SAndroid Build Coastguard Worker returns (ListSchemaRevisionsResponse) { 70*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 71*d5c09012SAndroid Build Coastguard Worker get: "/v1/{name=projects/*/schemas/*}:listRevisions" 72*d5c09012SAndroid Build Coastguard Worker }; 73*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "name"; 74*d5c09012SAndroid Build Coastguard Worker } 75*d5c09012SAndroid Build Coastguard Worker 76*d5c09012SAndroid Build Coastguard Worker // Commits a new schema revision to an existing schema. 77*d5c09012SAndroid Build Coastguard Worker rpc CommitSchema(CommitSchemaRequest) returns (Schema) { 78*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 79*d5c09012SAndroid Build Coastguard Worker post: "/v1/{name=projects/*/schemas/*}:commit" 80*d5c09012SAndroid Build Coastguard Worker body: "*" 81*d5c09012SAndroid Build Coastguard Worker }; 82*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "name,schema"; 83*d5c09012SAndroid Build Coastguard Worker } 84*d5c09012SAndroid Build Coastguard Worker 85*d5c09012SAndroid Build Coastguard Worker // Creates a new schema revision that is a copy of the provided revision_id. 86*d5c09012SAndroid Build Coastguard Worker rpc RollbackSchema(RollbackSchemaRequest) returns (Schema) { 87*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 88*d5c09012SAndroid Build Coastguard Worker post: "/v1/{name=projects/*/schemas/*}:rollback" 89*d5c09012SAndroid Build Coastguard Worker body: "*" 90*d5c09012SAndroid Build Coastguard Worker }; 91*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "name,revision_id"; 92*d5c09012SAndroid Build Coastguard Worker } 93*d5c09012SAndroid Build Coastguard Worker 94*d5c09012SAndroid Build Coastguard Worker // Deletes a specific schema revision. 95*d5c09012SAndroid Build Coastguard Worker rpc DeleteSchemaRevision(DeleteSchemaRevisionRequest) returns (Schema) { 96*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 97*d5c09012SAndroid Build Coastguard Worker delete: "/v1/{name=projects/*/schemas/*}:deleteRevision" 98*d5c09012SAndroid Build Coastguard Worker }; 99*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "name,revision_id"; 100*d5c09012SAndroid Build Coastguard Worker } 101*d5c09012SAndroid Build Coastguard Worker 102*d5c09012SAndroid Build Coastguard Worker // Deletes a schema. 103*d5c09012SAndroid Build Coastguard Worker rpc DeleteSchema(DeleteSchemaRequest) returns (google.protobuf.Empty) { 104*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 105*d5c09012SAndroid Build Coastguard Worker delete: "/v1/{name=projects/*/schemas/*}" 106*d5c09012SAndroid Build Coastguard Worker }; 107*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "name"; 108*d5c09012SAndroid Build Coastguard Worker } 109*d5c09012SAndroid Build Coastguard Worker 110*d5c09012SAndroid Build Coastguard Worker // Validates a schema. 111*d5c09012SAndroid Build Coastguard Worker rpc ValidateSchema(ValidateSchemaRequest) returns (ValidateSchemaResponse) { 112*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 113*d5c09012SAndroid Build Coastguard Worker post: "/v1/{parent=projects/*}/schemas:validate" 114*d5c09012SAndroid Build Coastguard Worker body: "*" 115*d5c09012SAndroid Build Coastguard Worker }; 116*d5c09012SAndroid Build Coastguard Worker option (google.api.method_signature) = "parent,schema"; 117*d5c09012SAndroid Build Coastguard Worker } 118*d5c09012SAndroid Build Coastguard Worker 119*d5c09012SAndroid Build Coastguard Worker // Validates a message against a schema. 120*d5c09012SAndroid Build Coastguard Worker rpc ValidateMessage(ValidateMessageRequest) 121*d5c09012SAndroid Build Coastguard Worker returns (ValidateMessageResponse) { 122*d5c09012SAndroid Build Coastguard Worker option (google.api.http) = { 123*d5c09012SAndroid Build Coastguard Worker post: "/v1/{parent=projects/*}/schemas:validateMessage" 124*d5c09012SAndroid Build Coastguard Worker body: "*" 125*d5c09012SAndroid Build Coastguard Worker }; 126*d5c09012SAndroid Build Coastguard Worker } 127*d5c09012SAndroid Build Coastguard Worker} 128*d5c09012SAndroid Build Coastguard Worker 129*d5c09012SAndroid Build Coastguard Worker// A schema resource. 130*d5c09012SAndroid Build Coastguard Workermessage Schema { 131*d5c09012SAndroid Build Coastguard Worker option (google.api.resource) = { 132*d5c09012SAndroid Build Coastguard Worker type: "pubsub.googleapis.com/Schema" 133*d5c09012SAndroid Build Coastguard Worker pattern: "projects/{project}/schemas/{schema}" 134*d5c09012SAndroid Build Coastguard Worker }; 135*d5c09012SAndroid Build Coastguard Worker 136*d5c09012SAndroid Build Coastguard Worker // Possible schema definition types. 137*d5c09012SAndroid Build Coastguard Worker enum Type { 138*d5c09012SAndroid Build Coastguard Worker // Default value. This value is unused. 139*d5c09012SAndroid Build Coastguard Worker TYPE_UNSPECIFIED = 0; 140*d5c09012SAndroid Build Coastguard Worker 141*d5c09012SAndroid Build Coastguard Worker // A Protocol Buffer schema definition. 142*d5c09012SAndroid Build Coastguard Worker PROTOCOL_BUFFER = 1; 143*d5c09012SAndroid Build Coastguard Worker 144*d5c09012SAndroid Build Coastguard Worker // An Avro schema definition. 145*d5c09012SAndroid Build Coastguard Worker AVRO = 2; 146*d5c09012SAndroid Build Coastguard Worker } 147*d5c09012SAndroid Build Coastguard Worker 148*d5c09012SAndroid Build Coastguard Worker // Required. Name of the schema. 149*d5c09012SAndroid Build Coastguard Worker // Format is `projects/{project}/schemas/{schema}`. 150*d5c09012SAndroid Build Coastguard Worker string name = 1 [(google.api.field_behavior) = REQUIRED]; 151*d5c09012SAndroid Build Coastguard Worker 152*d5c09012SAndroid Build Coastguard Worker // The type of the schema definition. 153*d5c09012SAndroid Build Coastguard Worker Type type = 2; 154*d5c09012SAndroid Build Coastguard Worker 155*d5c09012SAndroid Build Coastguard Worker // The definition of the schema. This should contain a string representing 156*d5c09012SAndroid Build Coastguard Worker // the full definition of the schema that is a valid schema definition of 157*d5c09012SAndroid Build Coastguard Worker // the type specified in `type`. 158*d5c09012SAndroid Build Coastguard Worker string definition = 3; 159*d5c09012SAndroid Build Coastguard Worker 160*d5c09012SAndroid Build Coastguard Worker // Output only. Immutable. The revision ID of the schema. 161*d5c09012SAndroid Build Coastguard Worker string revision_id = 4 [ 162*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = IMMUTABLE, 163*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = OUTPUT_ONLY 164*d5c09012SAndroid Build Coastguard Worker ]; 165*d5c09012SAndroid Build Coastguard Worker 166*d5c09012SAndroid Build Coastguard Worker // Output only. The timestamp that the revision was created. 167*d5c09012SAndroid Build Coastguard Worker google.protobuf.Timestamp revision_create_time = 6 168*d5c09012SAndroid Build Coastguard Worker [(google.api.field_behavior) = OUTPUT_ONLY]; 169*d5c09012SAndroid Build Coastguard Worker} 170*d5c09012SAndroid Build Coastguard Worker 171*d5c09012SAndroid Build Coastguard Worker// View of Schema object fields to be returned by GetSchema and ListSchemas. 172*d5c09012SAndroid Build Coastguard Workerenum SchemaView { 173*d5c09012SAndroid Build Coastguard Worker // The default / unset value. 174*d5c09012SAndroid Build Coastguard Worker // The API will default to the BASIC view. 175*d5c09012SAndroid Build Coastguard Worker SCHEMA_VIEW_UNSPECIFIED = 0; 176*d5c09012SAndroid Build Coastguard Worker 177*d5c09012SAndroid Build Coastguard Worker // Include the name and type of the schema, but not the definition. 178*d5c09012SAndroid Build Coastguard Worker BASIC = 1; 179*d5c09012SAndroid Build Coastguard Worker 180*d5c09012SAndroid Build Coastguard Worker // Include all Schema object fields. 181*d5c09012SAndroid Build Coastguard Worker FULL = 2; 182*d5c09012SAndroid Build Coastguard Worker} 183*d5c09012SAndroid Build Coastguard Worker 184*d5c09012SAndroid Build Coastguard Worker// Request for the CreateSchema method. 185*d5c09012SAndroid Build Coastguard Workermessage CreateSchemaRequest { 186*d5c09012SAndroid Build Coastguard Worker // Required. The name of the project in which to create the schema. 187*d5c09012SAndroid Build Coastguard Worker // Format is `projects/{project-id}`. 188*d5c09012SAndroid Build Coastguard Worker string parent = 1 [ 189*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 190*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { 191*d5c09012SAndroid Build Coastguard Worker child_type: "pubsub.googleapis.com/Schema" 192*d5c09012SAndroid Build Coastguard Worker } 193*d5c09012SAndroid Build Coastguard Worker ]; 194*d5c09012SAndroid Build Coastguard Worker 195*d5c09012SAndroid Build Coastguard Worker // Required. The schema object to create. 196*d5c09012SAndroid Build Coastguard Worker // 197*d5c09012SAndroid Build Coastguard Worker // This schema's `name` parameter is ignored. The schema object returned 198*d5c09012SAndroid Build Coastguard Worker // by CreateSchema will have a `name` made using the given `parent` and 199*d5c09012SAndroid Build Coastguard Worker // `schema_id`. 200*d5c09012SAndroid Build Coastguard Worker Schema schema = 2 [(google.api.field_behavior) = REQUIRED]; 201*d5c09012SAndroid Build Coastguard Worker 202*d5c09012SAndroid Build Coastguard Worker // The ID to use for the schema, which will become the final component of 203*d5c09012SAndroid Build Coastguard Worker // the schema's resource name. 204*d5c09012SAndroid Build Coastguard Worker // 205*d5c09012SAndroid Build Coastguard Worker // See https://cloud.google.com/pubsub/docs/pubsub-basics#resource_names for 206*d5c09012SAndroid Build Coastguard Worker // resource name constraints. 207*d5c09012SAndroid Build Coastguard Worker string schema_id = 3; 208*d5c09012SAndroid Build Coastguard Worker} 209*d5c09012SAndroid Build Coastguard Worker 210*d5c09012SAndroid Build Coastguard Worker// Request for the GetSchema method. 211*d5c09012SAndroid Build Coastguard Workermessage GetSchemaRequest { 212*d5c09012SAndroid Build Coastguard Worker // Required. The name of the schema to get. 213*d5c09012SAndroid Build Coastguard Worker // Format is `projects/{project}/schemas/{schema}`. 214*d5c09012SAndroid Build Coastguard Worker string name = 1 [ 215*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 216*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { type: "pubsub.googleapis.com/Schema" } 217*d5c09012SAndroid Build Coastguard Worker ]; 218*d5c09012SAndroid Build Coastguard Worker 219*d5c09012SAndroid Build Coastguard Worker // The set of fields to return in the response. If not set, returns a Schema 220*d5c09012SAndroid Build Coastguard Worker // with all fields filled out. Set to `BASIC` to omit the `definition`. 221*d5c09012SAndroid Build Coastguard Worker SchemaView view = 2; 222*d5c09012SAndroid Build Coastguard Worker} 223*d5c09012SAndroid Build Coastguard Worker 224*d5c09012SAndroid Build Coastguard Worker// Request for the `ListSchemas` method. 225*d5c09012SAndroid Build Coastguard Workermessage ListSchemasRequest { 226*d5c09012SAndroid Build Coastguard Worker // Required. The name of the project in which to list schemas. 227*d5c09012SAndroid Build Coastguard Worker // Format is `projects/{project-id}`. 228*d5c09012SAndroid Build Coastguard Worker string parent = 1 [ 229*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 230*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { 231*d5c09012SAndroid Build Coastguard Worker type: "cloudresourcemanager.googleapis.com/Project" 232*d5c09012SAndroid Build Coastguard Worker } 233*d5c09012SAndroid Build Coastguard Worker ]; 234*d5c09012SAndroid Build Coastguard Worker 235*d5c09012SAndroid Build Coastguard Worker // The set of Schema fields to return in the response. If not set, returns 236*d5c09012SAndroid Build Coastguard Worker // Schemas with `name` and `type`, but not `definition`. Set to `FULL` to 237*d5c09012SAndroid Build Coastguard Worker // retrieve all fields. 238*d5c09012SAndroid Build Coastguard Worker SchemaView view = 2; 239*d5c09012SAndroid Build Coastguard Worker 240*d5c09012SAndroid Build Coastguard Worker // Maximum number of schemas to return. 241*d5c09012SAndroid Build Coastguard Worker int32 page_size = 3; 242*d5c09012SAndroid Build Coastguard Worker 243*d5c09012SAndroid Build Coastguard Worker // The value returned by the last `ListSchemasResponse`; indicates that 244*d5c09012SAndroid Build Coastguard Worker // this is a continuation of a prior `ListSchemas` call, and that the 245*d5c09012SAndroid Build Coastguard Worker // system should return the next page of data. 246*d5c09012SAndroid Build Coastguard Worker string page_token = 4; 247*d5c09012SAndroid Build Coastguard Worker} 248*d5c09012SAndroid Build Coastguard Worker 249*d5c09012SAndroid Build Coastguard Worker// Response for the `ListSchemas` method. 250*d5c09012SAndroid Build Coastguard Workermessage ListSchemasResponse { 251*d5c09012SAndroid Build Coastguard Worker // The resulting schemas. 252*d5c09012SAndroid Build Coastguard Worker repeated Schema schemas = 1; 253*d5c09012SAndroid Build Coastguard Worker 254*d5c09012SAndroid Build Coastguard Worker // If not empty, indicates that there may be more schemas that match the 255*d5c09012SAndroid Build Coastguard Worker // request; this value should be passed in a new `ListSchemasRequest`. 256*d5c09012SAndroid Build Coastguard Worker string next_page_token = 2; 257*d5c09012SAndroid Build Coastguard Worker} 258*d5c09012SAndroid Build Coastguard Worker 259*d5c09012SAndroid Build Coastguard Worker// Request for the `ListSchemaRevisions` method. 260*d5c09012SAndroid Build Coastguard Workermessage ListSchemaRevisionsRequest { 261*d5c09012SAndroid Build Coastguard Worker // Required. The name of the schema to list revisions for. 262*d5c09012SAndroid Build Coastguard Worker string name = 1 [ 263*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 264*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { type: "pubsub.googleapis.com/Schema" } 265*d5c09012SAndroid Build Coastguard Worker ]; 266*d5c09012SAndroid Build Coastguard Worker 267*d5c09012SAndroid Build Coastguard Worker // The set of Schema fields to return in the response. If not set, returns 268*d5c09012SAndroid Build Coastguard Worker // Schemas with `name` and `type`, but not `definition`. Set to `FULL` to 269*d5c09012SAndroid Build Coastguard Worker // retrieve all fields. 270*d5c09012SAndroid Build Coastguard Worker SchemaView view = 2; 271*d5c09012SAndroid Build Coastguard Worker 272*d5c09012SAndroid Build Coastguard Worker // The maximum number of revisions to return per page. 273*d5c09012SAndroid Build Coastguard Worker int32 page_size = 3; 274*d5c09012SAndroid Build Coastguard Worker 275*d5c09012SAndroid Build Coastguard Worker // The page token, received from a previous ListSchemaRevisions call. 276*d5c09012SAndroid Build Coastguard Worker // Provide this to retrieve the subsequent page. 277*d5c09012SAndroid Build Coastguard Worker string page_token = 4; 278*d5c09012SAndroid Build Coastguard Worker} 279*d5c09012SAndroid Build Coastguard Worker 280*d5c09012SAndroid Build Coastguard Worker// Response for the `ListSchemaRevisions` method. 281*d5c09012SAndroid Build Coastguard Workermessage ListSchemaRevisionsResponse { 282*d5c09012SAndroid Build Coastguard Worker // The revisions of the schema. 283*d5c09012SAndroid Build Coastguard Worker repeated Schema schemas = 1; 284*d5c09012SAndroid Build Coastguard Worker 285*d5c09012SAndroid Build Coastguard Worker // A token that can be sent as `page_token` to retrieve the next page. 286*d5c09012SAndroid Build Coastguard Worker // If this field is empty, there are no subsequent pages. 287*d5c09012SAndroid Build Coastguard Worker string next_page_token = 2; 288*d5c09012SAndroid Build Coastguard Worker} 289*d5c09012SAndroid Build Coastguard Worker 290*d5c09012SAndroid Build Coastguard Worker// Request for CommitSchema method. 291*d5c09012SAndroid Build Coastguard Workermessage CommitSchemaRequest { 292*d5c09012SAndroid Build Coastguard Worker // Required. The name of the schema we are revising. 293*d5c09012SAndroid Build Coastguard Worker // Format is `projects/{project}/schemas/{schema}`. 294*d5c09012SAndroid Build Coastguard Worker string name = 1 [ 295*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 296*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { type: "pubsub.googleapis.com/Schema" } 297*d5c09012SAndroid Build Coastguard Worker ]; 298*d5c09012SAndroid Build Coastguard Worker 299*d5c09012SAndroid Build Coastguard Worker // Required. The schema revision to commit. 300*d5c09012SAndroid Build Coastguard Worker Schema schema = 2 [(google.api.field_behavior) = REQUIRED]; 301*d5c09012SAndroid Build Coastguard Worker} 302*d5c09012SAndroid Build Coastguard Worker 303*d5c09012SAndroid Build Coastguard Worker// Request for the `RollbackSchema` method. 304*d5c09012SAndroid Build Coastguard Workermessage RollbackSchemaRequest { 305*d5c09012SAndroid Build Coastguard Worker // Required. The schema being rolled back with revision id. 306*d5c09012SAndroid Build Coastguard Worker string name = 1 [ 307*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 308*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { type: "pubsub.googleapis.com/Schema" } 309*d5c09012SAndroid Build Coastguard Worker ]; 310*d5c09012SAndroid Build Coastguard Worker 311*d5c09012SAndroid Build Coastguard Worker // Required. The revision ID to roll back to. 312*d5c09012SAndroid Build Coastguard Worker // It must be a revision of the same schema. 313*d5c09012SAndroid Build Coastguard Worker // 314*d5c09012SAndroid Build Coastguard Worker // Example: c7cfa2a8 315*d5c09012SAndroid Build Coastguard Worker string revision_id = 2 [(google.api.field_behavior) = REQUIRED]; 316*d5c09012SAndroid Build Coastguard Worker} 317*d5c09012SAndroid Build Coastguard Worker 318*d5c09012SAndroid Build Coastguard Worker// Request for the `DeleteSchemaRevision` method. 319*d5c09012SAndroid Build Coastguard Workermessage DeleteSchemaRevisionRequest { 320*d5c09012SAndroid Build Coastguard Worker // Required. The name of the schema revision to be deleted, with a revision ID 321*d5c09012SAndroid Build Coastguard Worker // explicitly included. 322*d5c09012SAndroid Build Coastguard Worker // 323*d5c09012SAndroid Build Coastguard Worker // Example: `projects/123/schemas/my-schema@c7cfa2a8` 324*d5c09012SAndroid Build Coastguard Worker string name = 1 [ 325*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 326*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { type: "pubsub.googleapis.com/Schema" } 327*d5c09012SAndroid Build Coastguard Worker ]; 328*d5c09012SAndroid Build Coastguard Worker 329*d5c09012SAndroid Build Coastguard Worker // Optional. This field is deprecated and should not be used for specifying 330*d5c09012SAndroid Build Coastguard Worker // the revision ID. The revision ID should be specified via the `name` 331*d5c09012SAndroid Build Coastguard Worker // parameter. 332*d5c09012SAndroid Build Coastguard Worker string revision_id = 2 333*d5c09012SAndroid Build Coastguard Worker [deprecated = true, (google.api.field_behavior) = OPTIONAL]; 334*d5c09012SAndroid Build Coastguard Worker} 335*d5c09012SAndroid Build Coastguard Worker 336*d5c09012SAndroid Build Coastguard Worker// Request for the `DeleteSchema` method. 337*d5c09012SAndroid Build Coastguard Workermessage DeleteSchemaRequest { 338*d5c09012SAndroid Build Coastguard Worker // Required. Name of the schema to delete. 339*d5c09012SAndroid Build Coastguard Worker // Format is `projects/{project}/schemas/{schema}`. 340*d5c09012SAndroid Build Coastguard Worker string name = 1 [ 341*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 342*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { type: "pubsub.googleapis.com/Schema" } 343*d5c09012SAndroid Build Coastguard Worker ]; 344*d5c09012SAndroid Build Coastguard Worker} 345*d5c09012SAndroid Build Coastguard Worker 346*d5c09012SAndroid Build Coastguard Worker// Request for the `ValidateSchema` method. 347*d5c09012SAndroid Build Coastguard Workermessage ValidateSchemaRequest { 348*d5c09012SAndroid Build Coastguard Worker // Required. The name of the project in which to validate schemas. 349*d5c09012SAndroid Build Coastguard Worker // Format is `projects/{project-id}`. 350*d5c09012SAndroid Build Coastguard Worker string parent = 1 [ 351*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 352*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { 353*d5c09012SAndroid Build Coastguard Worker type: "cloudresourcemanager.googleapis.com/Project" 354*d5c09012SAndroid Build Coastguard Worker } 355*d5c09012SAndroid Build Coastguard Worker ]; 356*d5c09012SAndroid Build Coastguard Worker 357*d5c09012SAndroid Build Coastguard Worker // Required. The schema object to validate. 358*d5c09012SAndroid Build Coastguard Worker Schema schema = 2 [(google.api.field_behavior) = REQUIRED]; 359*d5c09012SAndroid Build Coastguard Worker} 360*d5c09012SAndroid Build Coastguard Worker 361*d5c09012SAndroid Build Coastguard Worker// Response for the `ValidateSchema` method. 362*d5c09012SAndroid Build Coastguard Worker// Empty for now. 363*d5c09012SAndroid Build Coastguard Workermessage ValidateSchemaResponse {} 364*d5c09012SAndroid Build Coastguard Worker 365*d5c09012SAndroid Build Coastguard Worker// Request for the `ValidateMessage` method. 366*d5c09012SAndroid Build Coastguard Workermessage ValidateMessageRequest { 367*d5c09012SAndroid Build Coastguard Worker // Required. The name of the project in which to validate schemas. 368*d5c09012SAndroid Build Coastguard Worker // Format is `projects/{project-id}`. 369*d5c09012SAndroid Build Coastguard Worker string parent = 1 [ 370*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 371*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { 372*d5c09012SAndroid Build Coastguard Worker type: "cloudresourcemanager.googleapis.com/Project" 373*d5c09012SAndroid Build Coastguard Worker } 374*d5c09012SAndroid Build Coastguard Worker ]; 375*d5c09012SAndroid Build Coastguard Worker 376*d5c09012SAndroid Build Coastguard Worker oneof schema_spec { 377*d5c09012SAndroid Build Coastguard Worker // Name of the schema against which to validate. 378*d5c09012SAndroid Build Coastguard Worker // 379*d5c09012SAndroid Build Coastguard Worker // Format is `projects/{project}/schemas/{schema}`. 380*d5c09012SAndroid Build Coastguard Worker string name = 2 [ 381*d5c09012SAndroid Build Coastguard Worker (google.api.resource_reference) = { type: "pubsub.googleapis.com/Schema" } 382*d5c09012SAndroid Build Coastguard Worker ]; 383*d5c09012SAndroid Build Coastguard Worker 384*d5c09012SAndroid Build Coastguard Worker // Ad-hoc schema against which to validate 385*d5c09012SAndroid Build Coastguard Worker Schema schema = 3; 386*d5c09012SAndroid Build Coastguard Worker } 387*d5c09012SAndroid Build Coastguard Worker 388*d5c09012SAndroid Build Coastguard Worker // Message to validate against the provided `schema_spec`. 389*d5c09012SAndroid Build Coastguard Worker bytes message = 4; 390*d5c09012SAndroid Build Coastguard Worker 391*d5c09012SAndroid Build Coastguard Worker // The encoding expected for messages 392*d5c09012SAndroid Build Coastguard Worker Encoding encoding = 5; 393*d5c09012SAndroid Build Coastguard Worker} 394*d5c09012SAndroid Build Coastguard Worker 395*d5c09012SAndroid Build Coastguard Worker// Response for the `ValidateMessage` method. 396*d5c09012SAndroid Build Coastguard Worker// Empty for now. 397*d5c09012SAndroid Build Coastguard Workermessage ValidateMessageResponse {} 398*d5c09012SAndroid Build Coastguard Worker 399*d5c09012SAndroid Build Coastguard Worker// Possible encoding types for messages. 400*d5c09012SAndroid Build Coastguard Workerenum Encoding { 401*d5c09012SAndroid Build Coastguard Worker // Unspecified 402*d5c09012SAndroid Build Coastguard Worker ENCODING_UNSPECIFIED = 0; 403*d5c09012SAndroid Build Coastguard Worker 404*d5c09012SAndroid Build Coastguard Worker // JSON encoding 405*d5c09012SAndroid Build Coastguard Worker JSON = 1; 406*d5c09012SAndroid Build Coastguard Worker 407*d5c09012SAndroid Build Coastguard Worker // Binary encoding, as defined by the schema type. For some schema types, 408*d5c09012SAndroid Build Coastguard Worker // binary encoding may not be available. 409*d5c09012SAndroid Build Coastguard Worker BINARY = 2; 410*d5c09012SAndroid Build Coastguard Worker} 411