api/v1/proto/api.proto (239 lines of code) (raw):

syntax = "proto3"; import "google/api/annotations.proto"; import "google/protobuf/empty.proto"; import "buf/validate/validate.proto"; import "proto/log.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; import "google/protobuf/timestamp.proto"; // https://protobuf.dev/reference/go/go-generated/#package option go_package = "dev.azure.com/service-hub-flg/service_hub_validation/_git/service_hub_validation_service.git/mygreeterv3/api/v1"; // More info on how to use REST api // https://cloud.google.com/endpoints/docs/grpc/transcoding#map_a_get_method // The greeting service definition. service MyGreeter { // Sends a greeting rpc SayHello (HelloRequest) returns (HelloReply) { option (google.api.http) = { post: "/v1/hello" body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "Send a greeting" description: "This operation sends a greeting to the user." }; } // Creates a resource group rpc CreateResourceGroup (CreateResourceGroupRequest) returns (google.protobuf.Empty) { option (google.api.http) = { post: "/v1/resourcegroups" body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "Create a resource group" description: "This operation creates a new resource group." }; } // Reads a resource group rpc ReadResourceGroup (ReadResourceGroupRequest) returns (ReadResourceGroupResponse) { option (google.api.http) = { get: "/v1/resourcegroups/{name}" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "Read a resource group" description: "This operation reads the details of a resource group." }; } // Deletes a resource group rpc DeleteResourceGroup (DeleteResourceGroupRequest) returns (google.protobuf.Empty) { option (google.api.http) = { delete: "/v1/resourcegroups/{name}" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "Delete a resource group" description: "This operation deletes a resource group." }; } // Updates a resource group rpc UpdateResourceGroup (UpdateResourceGroupRequest) returns (UpdateResourceGroupResponse) { option (google.api.http) = { put: "/v1/resourcegroups/{name}" body: "tags" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "Update a resource group" description: "This operation updates the tags of a resource group." }; } // Lists all resource groups rpc ListResourceGroups (google.protobuf.Empty) returns (ListResourceGroupResponse) { option (google.api.http) = { get: "/v1/resourcegroups" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "List all resource groups" description: "This operation lists all the resource groups." }; } // Creates a storage account rpc CreateStorageAccount (CreateStorageAccountRequest) returns (CreateStorageAccountResponse) { option (google.api.http) = { post: "/v1/resourcegroups/{rgName}/storageaccounts" body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "Create a storage account" description: "This operation creates a new storage account." }; } // Reads a storage account rpc ReadStorageAccount (ReadStorageAccountRequest) returns (ReadStorageAccountResponse) { option (google.api.http) = { get: "/v1/resourcegroups/{rgName}/storageaccounts/{saName}" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "Read a storage account" description: "This operation reads the details of a storage account." }; } // Deletes a storage account rpc DeleteStorageAccount (DeleteStorageAccountRequest) returns (google.protobuf.Empty) { option (google.api.http) = { delete: "/v1/resourcegroups/{rgName}/storageaccounts/{saName}" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "Delete a storage account" description: "This operation deletes a storage account." }; } // Updates a storage account rpc UpdateStorageAccount (UpdateStorageAccountRequest) returns (UpdateStorageAccountResponse) { option (google.api.http) = { put: "/v1/resourcegroups/{rgName}/storageaccounts/{saName}" body: "tags" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "Update a storage account" description: "This operation updates the tags of a storage account." }; } // Lists all storage accounts rpc ListStorageAccounts (ListStorageAccountRequest) returns (ListStorageAccountResponse) { option (google.api.http) = { get: "/v1/resourcegroups/{rgName}/storageaccounts" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "List all storage accounts" description: "This operation lists all the storage accounts." }; } // ********************ASYNC OPERATIONS******************** // Enqueue into the queue rpc StartLongRunningOperation (StartLongRunningOperationRequest) returns (StartLongRunningOperationResponse) { option (google.api.http) = { post: "/v1/async/longrunningoperation" body: "*" }; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_operation) = { summary: "Start a long running operation." description: "This call starts an async long running operation." }; } } message HelloRequest { string name = 1 [(buf.validate.field).string.min_len = 2]; int32 age = 2 [(buf.validate.field).int32 = { gte: 1, lt: 150 }, (servicehub.fieldoptions.loggable) = false]; string email = 3 [(buf.validate.field).string = { min_len: 1, pattern: "^[\\w.-]+@[\\w.-]+\\.[\\w]{2,}$" }, (servicehub.fieldoptions.loggable) = false]; optional Address address = 4; } message HelloReply { string message = 1; } message Address { string city = 1 [(buf.validate.field).string.min_len = 1]; // The city name string state = 2 [(buf.validate.field).string.min_len = 1, (servicehub.fieldoptions.loggable) = false]; // The state name int32 zipcode = 3 [(buf.validate.field).int32 = { gte: 10000, lt: 99999 }]; // The zip code string street = 4 [(buf.validate.field).string.min_len = 1, (servicehub.fieldoptions.loggable) = false]; // The street name } message CreateResourceGroupRequest { string name = 1; string region = 2; } message ReadResourceGroupRequest { string name = 1; } message ReadResourceGroupResponse { ResourceGroup resourceGroup = 1; } message DeleteResourceGroupRequest { string name = 1; } message UpdateResourceGroupRequest { string name = 1; map<string, string> tags = 2; } message UpdateResourceGroupResponse { ResourceGroup resourceGroup = 1; } message ListResourceGroupResponse { repeated ResourceGroup rgList = 1; } message ResourceGroup { string id = 1; string name = 2; string location = 3; } message CreateStorageAccountRequest { string rgName = 1; string region = 2; } message CreateStorageAccountResponse { string name = 1; } message ReadStorageAccountRequest { string rgName = 1; string saName = 2; } message ReadStorageAccountResponse { StorageAccount storageAccount = 1; } message DeleteStorageAccountRequest { string rgName = 1; string saName = 2; } message UpdateStorageAccountRequest { string rgName = 1; string saName = 2; map<string, string> tags = 3; } message UpdateStorageAccountResponse { StorageAccount storageAccount = 1; } message ListStorageAccountRequest { string rgName = 1; } message ListStorageAccountResponse { repeated StorageAccount saList = 1; } message StorageAccount { string id = 1; string name = 2; string location = 3; } // ********************ASYNC OPERATIONS******************** message StartLongRunningOperationRequest { string entityId = 1; string entityType = 2; google.protobuf.Timestamp expirationTimestamp = 3; } message StartLongRunningOperationResponse { string operationId = 1; }