1// Copyright 2023 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// http://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 17package google.ai.generativelanguage.v1beta3; 18 19import "google/ai/generativelanguage/v1beta3/permission.proto"; 20import "google/api/annotations.proto"; 21import "google/api/client.proto"; 22import "google/api/field_behavior.proto"; 23import "google/api/resource.proto"; 24import "google/protobuf/empty.proto"; 25import "google/protobuf/field_mask.proto"; 26 27option go_package = "cloud.google.com/go/ai/generativelanguage/apiv1beta3/generativelanguagepb;generativelanguagepb"; 28option java_multiple_files = true; 29option java_outer_classname = "PermissionServiceProto"; 30option java_package = "com.google.ai.generativelanguage.v1beta3"; 31 32// Provides methods for managing permissions to PaLM API resources. 33service PermissionService { 34 option (google.api.default_host) = "generativelanguage.googleapis.com"; 35 36 // Create a permission to a specific resource. 37 rpc CreatePermission(CreatePermissionRequest) returns (Permission) { 38 option (google.api.http) = { 39 post: "/v1beta3/{parent=tunedModels/*}/permissions" 40 body: "permission" 41 }; 42 option (google.api.method_signature) = "parent,permission"; 43 } 44 45 // Gets information about a specific Permission. 46 rpc GetPermission(GetPermissionRequest) returns (Permission) { 47 option (google.api.http) = { 48 get: "/v1beta3/{name=tunedModels/*/permissions/*}" 49 }; 50 option (google.api.method_signature) = "name"; 51 } 52 53 // Lists permissions for the specific resource. 54 rpc ListPermissions(ListPermissionsRequest) 55 returns (ListPermissionsResponse) { 56 option (google.api.http) = { 57 get: "/v1beta3/{parent=tunedModels/*}/permissions" 58 }; 59 option (google.api.method_signature) = "parent"; 60 } 61 62 // Updates the permission. 63 rpc UpdatePermission(UpdatePermissionRequest) returns (Permission) { 64 option (google.api.http) = { 65 patch: "/v1beta3/{permission.name=tunedModels/*/permissions/*}" 66 body: "permission" 67 }; 68 option (google.api.method_signature) = "permission,update_mask"; 69 } 70 71 // Deletes the permission. 72 rpc DeletePermission(DeletePermissionRequest) 73 returns (google.protobuf.Empty) { 74 option (google.api.http) = { 75 delete: "/v1beta3/{name=tunedModels/*/permissions/*}" 76 }; 77 option (google.api.method_signature) = "name"; 78 } 79 80 // Transfers ownership of the tuned model. 81 // This is the only way to change ownership of the tuned model. 82 // The current owner will be downgraded to writer role. 83 rpc TransferOwnership(TransferOwnershipRequest) 84 returns (TransferOwnershipResponse) { 85 option (google.api.http) = { 86 post: "/v1beta3/{name=tunedModels/*}:transferOwnership" 87 body: "*" 88 }; 89 } 90} 91 92// Request to create a `Permission`. 93message CreatePermissionRequest { 94 // Required. The parent resource of the `Permission`. 95 // Format: tunedModels/{tuned_model} 96 string parent = 1 [ 97 (google.api.field_behavior) = REQUIRED, 98 (google.api.resource_reference) = { 99 child_type: "generativelanguage.googleapis.com/Permission" 100 } 101 ]; 102 103 // Required. The permission to create. 104 Permission permission = 2 [(google.api.field_behavior) = REQUIRED]; 105} 106 107// Request for getting information about a specific `Permission`. 108message GetPermissionRequest { 109 // Required. The resource name of the permission. 110 // 111 // Format: `tunedModels/{tuned_model}permissions/{permission}` 112 string name = 1 [ 113 (google.api.field_behavior) = REQUIRED, 114 (google.api.resource_reference) = { 115 type: "generativelanguage.googleapis.com/Permission" 116 } 117 ]; 118} 119 120// Request for listing permissions. 121message ListPermissionsRequest { 122 // Required. The parent resource of the permissions. 123 // Format: tunedModels/{tuned_model} 124 string parent = 1 [ 125 (google.api.field_behavior) = REQUIRED, 126 (google.api.resource_reference) = { type: "*" } 127 ]; 128 129 // Optional. The maximum number of `Permission`s to return (per page). 130 // The service may return fewer permissions. 131 // 132 // If unspecified, at most 10 permissions will be returned. 133 // This method returns at most 1000 permissions per page, even if you pass 134 // larger page_size. 135 int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; 136 137 // Optional. A page token, received from a previous `ListPermissions` call. 138 // 139 // Provide the `page_token` returned by one request as an argument to the 140 // next request to retrieve the next page. 141 // 142 // When paginating, all other parameters provided to `ListPermissions` 143 // must match the call that provided the page token. 144 string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; 145} 146 147// Response from `ListPermissions` containing a paginated list of 148// permissions. 149message ListPermissionsResponse { 150 // Returned permissions. 151 repeated Permission permissions = 1; 152 153 // A token, which can be sent as `page_token` to retrieve the next page. 154 // 155 // If this field is omitted, there are no more pages. 156 string next_page_token = 2; 157} 158 159// Request to update the `Permission`. 160message UpdatePermissionRequest { 161 // Required. The permission to update. 162 // 163 // The permission's `name` field is used to identify the permission to update. 164 Permission permission = 1 [(google.api.field_behavior) = REQUIRED]; 165 166 // Required. The list of fields to update. Accepted ones: 167 // - role (`Permission.role` field) 168 google.protobuf.FieldMask update_mask = 2 169 [(google.api.field_behavior) = REQUIRED]; 170} 171 172// Request to delete the `Permission`. 173message DeletePermissionRequest { 174 // Required. The resource name of the permission. 175 // Format: `tunedModels/{tuned_model}/permissions/{permission}` 176 string name = 1 [ 177 (google.api.field_behavior) = REQUIRED, 178 (google.api.resource_reference) = { 179 type: "generativelanguage.googleapis.com/Permission" 180 } 181 ]; 182} 183 184// Request to transfer the ownership of the tuned model. 185message TransferOwnershipRequest { 186 // Required. The resource name of the tuned model to transfer ownership . 187 // 188 // Format: `tunedModels/my-model-id` 189 string name = 1 [ 190 (google.api.field_behavior) = REQUIRED, 191 (google.api.resource_reference) = { 192 type: "generativelanguage.googleapis.com/TunedModel" 193 } 194 ]; 195 196 // Required. The email address of the user to whom the tuned model is being 197 // transferred to. 198 string email_address = 2 [(google.api.field_behavior) = REQUIRED]; 199} 200 201// Response from `TransferOwnership`. 202message TransferOwnershipResponse {} 203