1// Copyright 2018 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// https://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15syntax = "proto3"; 16 17import "google/api/annotations.proto"; 18import "google/api/client.proto"; 19import "google/api/field_behavior.proto"; 20import "google/api/resource.proto"; 21 22package google.testgapic; 23 24option java_package = "com.google.testgapic.v1beta1"; 25option java_multiple_files = true; 26option java_outer_classname = "LockerProto"; 27 28option (google.api.resource_definition) = { 29 type: "cloudbilling.googleapis.com/BillingAccount" 30 pattern: "billingAccounts/{billing_account}" 31}; 32 33option (google.api.resource_definition) = { 34 type: "cloudresourcemanager.googleapis.com/Anything" 35 pattern: "*" 36}; 37 38option (google.api.resource_definition) = { 39 type: "cloudresourcemanager.googleapis.com/Folder" 40 pattern: "projects/{project}/folders/{folder}" 41 pattern: "folders/{folder}" 42}; 43 44option (google.api.resource_definition) = { 45 type: "pubsub.googleapis.com/Topic" 46 pattern: "_deleted-topic_" 47}; 48 49service Locker { 50 // This service is meant to only run locally on the port 7469 (keypad digits 51 // for "show"). 52 option (google.api.default_host) = "localhost:7469"; 53 option (google.api.oauth_scopes) = 54 "https://www.googleapis.com/auth/cloud-platform," 55 "https://www.googleapis.com/auth/cloud"; 56 57 // Creates a user. 58 rpc CreateFolder(CreateFolderRequest) returns (Folder) { 59 option (google.api.http) = { 60 post: "/v1beta1/{parent=folders}" 61 body: "*" 62 }; 63 option (google.api.method_signature) = "parent"; 64 } 65 66 rpc GetFolder(GetFolderRequest) returns (Folder) { 67 option (google.api.http) = { 68 get: "/v1beta1/{name=users/*}" 69 }; 70 option (google.api.method_signature) = "name"; 71 } 72} 73 74message Document { 75 option (google.api.resource) = { 76 type: "testgapic.googleapis.com/Document" 77 pattern: "documents/{document}" 78 pattern: "folders/{folder}/documents/{document}" 79 pattern: "*" 80 }; 81 82 // The resource name of the document. 83 string name = 1; 84} 85 86message Folder { 87 string name = 1 [(google.api.resource_reference).type = 88 "cloudresourcemanager.googleapis.com/Folder"]; 89} 90 91message Binder { 92 option (google.api.resource) = { 93 type: "testgapic.googleapis.com/Binder" 94 pattern: "binders/{binder}" 95 }; 96 97 // The resource name of the binder. 98 string binder_name = 1 [(google.api.resource_reference).type = 99 "testgapic.googleapis.com/Binder"]; 100} 101 102message GetFolderRequest { 103 string name = 1 [ 104 (google.api.resource_reference).type = 105 "cloudresourcemanager.googleapis.com/Folder", 106 (google.api.field_behavior) = REQUIRED 107 ]; 108} 109 110message CreateFolderRequest { 111 string parent = 1 [ 112 (google.api.resource_reference).child_type = 113 "cloudresourcemanager.googleapis.com/Folder", 114 (google.api.field_behavior) = REQUIRED 115 ]; 116 117 // The folder to create. 118 Folder folder = 2 [(google.api.field_behavior) = REQUIRED]; 119} 120