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.ai.generativelanguage.v1beta3; 18*d5c09012SAndroid Build Coastguard Worker 19*d5c09012SAndroid Build Coastguard Workerimport "google/api/field_behavior.proto"; 20*d5c09012SAndroid Build Coastguard Workerimport "google/api/resource.proto"; 21*d5c09012SAndroid Build Coastguard Worker 22*d5c09012SAndroid Build Coastguard Workeroption go_package = "cloud.google.com/go/ai/generativelanguage/apiv1beta3/generativelanguagepb;generativelanguagepb"; 23*d5c09012SAndroid Build Coastguard Workeroption java_multiple_files = true; 24*d5c09012SAndroid Build Coastguard Workeroption java_outer_classname = "PermissionProto"; 25*d5c09012SAndroid Build Coastguard Workeroption java_package = "com.google.ai.generativelanguage.v1beta3"; 26*d5c09012SAndroid Build Coastguard Worker 27*d5c09012SAndroid Build Coastguard Worker// Permission resource grants user, group or the rest of the world access to the 28*d5c09012SAndroid Build Coastguard Worker// PaLM API resource (e.g. a tuned model, file). 29*d5c09012SAndroid Build Coastguard Worker// 30*d5c09012SAndroid Build Coastguard Worker// A role is a collection of permitted operations that allows users to perform 31*d5c09012SAndroid Build Coastguard Worker// specific actions on PaLM API resources. To make them available to users, 32*d5c09012SAndroid Build Coastguard Worker// groups, or service accounts, you assign roles. When you assign a role, you 33*d5c09012SAndroid Build Coastguard Worker// grant permissions that the role contains. 34*d5c09012SAndroid Build Coastguard Worker// 35*d5c09012SAndroid Build Coastguard Worker// There are three concentric roles. Each role is a superset of the previous 36*d5c09012SAndroid Build Coastguard Worker// role's permitted operations: 37*d5c09012SAndroid Build Coastguard Worker// - reader can use the resource (e.g. tuned model) for inference 38*d5c09012SAndroid Build Coastguard Worker// - writer has reader's permissions and additionally can edit and share 39*d5c09012SAndroid Build Coastguard Worker// - owner has writer's permissions and additionally can delete 40*d5c09012SAndroid Build Coastguard Workermessage Permission { 41*d5c09012SAndroid Build Coastguard Worker option (google.api.resource) = { 42*d5c09012SAndroid Build Coastguard Worker type: "generativelanguage.googleapis.com/Permission" 43*d5c09012SAndroid Build Coastguard Worker pattern: "tunedModels/{tuned_model}/permissions/{permission}" 44*d5c09012SAndroid Build Coastguard Worker plural: "permissions" 45*d5c09012SAndroid Build Coastguard Worker singular: "permission" 46*d5c09012SAndroid Build Coastguard Worker }; 47*d5c09012SAndroid Build Coastguard Worker 48*d5c09012SAndroid Build Coastguard Worker // Defines types of the grantee of this permission. 49*d5c09012SAndroid Build Coastguard Worker enum GranteeType { 50*d5c09012SAndroid Build Coastguard Worker // The default value. This value is unused. 51*d5c09012SAndroid Build Coastguard Worker GRANTEE_TYPE_UNSPECIFIED = 0; 52*d5c09012SAndroid Build Coastguard Worker 53*d5c09012SAndroid Build Coastguard Worker // Represents a user. When set, you must provide email_address for the user. 54*d5c09012SAndroid Build Coastguard Worker USER = 1; 55*d5c09012SAndroid Build Coastguard Worker 56*d5c09012SAndroid Build Coastguard Worker // Represents a group. When set, you must provide email_address for the 57*d5c09012SAndroid Build Coastguard Worker // group. 58*d5c09012SAndroid Build Coastguard Worker GROUP = 2; 59*d5c09012SAndroid Build Coastguard Worker 60*d5c09012SAndroid Build Coastguard Worker // Represents access to everyone. No extra information is required. 61*d5c09012SAndroid Build Coastguard Worker EVERYONE = 3; 62*d5c09012SAndroid Build Coastguard Worker } 63*d5c09012SAndroid Build Coastguard Worker 64*d5c09012SAndroid Build Coastguard Worker // Defines the role granted by this permission. 65*d5c09012SAndroid Build Coastguard Worker enum Role { 66*d5c09012SAndroid Build Coastguard Worker // The default value. This value is unused. 67*d5c09012SAndroid Build Coastguard Worker ROLE_UNSPECIFIED = 0; 68*d5c09012SAndroid Build Coastguard Worker 69*d5c09012SAndroid Build Coastguard Worker // Owner can use, update, share and delete the resource. 70*d5c09012SAndroid Build Coastguard Worker OWNER = 1; 71*d5c09012SAndroid Build Coastguard Worker 72*d5c09012SAndroid Build Coastguard Worker // Writer can use, update and share the resource. 73*d5c09012SAndroid Build Coastguard Worker WRITER = 2; 74*d5c09012SAndroid Build Coastguard Worker 75*d5c09012SAndroid Build Coastguard Worker // Reader can use the resource. 76*d5c09012SAndroid Build Coastguard Worker READER = 3; 77*d5c09012SAndroid Build Coastguard Worker } 78*d5c09012SAndroid Build Coastguard Worker 79*d5c09012SAndroid Build Coastguard Worker // Output only. The permission name. A unique name will be generated on 80*d5c09012SAndroid Build Coastguard Worker // create. Example: tunedModels/{tuned_model}permssions/{permission} Output 81*d5c09012SAndroid Build Coastguard Worker // only. 82*d5c09012SAndroid Build Coastguard Worker string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 83*d5c09012SAndroid Build Coastguard Worker 84*d5c09012SAndroid Build Coastguard Worker // Required. Immutable. The type of the grantee. 85*d5c09012SAndroid Build Coastguard Worker optional GranteeType grantee_type = 2 [ 86*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = REQUIRED, 87*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = IMMUTABLE 88*d5c09012SAndroid Build Coastguard Worker ]; 89*d5c09012SAndroid Build Coastguard Worker 90*d5c09012SAndroid Build Coastguard Worker // Optional. Immutable. The email address of the user of group which this 91*d5c09012SAndroid Build Coastguard Worker // permission refers. Field is not set when permission's grantee type is 92*d5c09012SAndroid Build Coastguard Worker // EVERYONE. 93*d5c09012SAndroid Build Coastguard Worker optional string email_address = 3 [ 94*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = OPTIONAL, 95*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = IMMUTABLE 96*d5c09012SAndroid Build Coastguard Worker ]; 97*d5c09012SAndroid Build Coastguard Worker 98*d5c09012SAndroid Build Coastguard Worker // Required. The role granted by this permission. 99*d5c09012SAndroid Build Coastguard Worker optional Role role = 4 [(google.api.field_behavior) = REQUIRED]; 100*d5c09012SAndroid Build Coastguard Worker} 101