xref: /aosp_15_r20/external/sdk-platform-java/gapic-generator-java/src/test/proto/locker.proto (revision 882aa7c72c3cd3b66e72a261bdd69b93f7de7670)
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