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.v1beta; 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/apiv1beta/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.v1beta"; 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, corpus). 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// 38*d5c09012SAndroid Build Coastguard Worker// - reader can use the resource (e.g. tuned model, corpus) for inference 39*d5c09012SAndroid Build Coastguard Worker// - writer has reader's permissions and additionally can edit and share 40*d5c09012SAndroid Build Coastguard Worker// - owner has writer's permissions and additionally can delete 41*d5c09012SAndroid Build Coastguard Workermessage Permission { 42*d5c09012SAndroid Build Coastguard Worker option (google.api.resource) = { 43*d5c09012SAndroid Build Coastguard Worker type: "generativelanguage.googleapis.com/Permission" 44*d5c09012SAndroid Build Coastguard Worker pattern: "tunedModels/{tuned_model}/permissions/{permission}" 45*d5c09012SAndroid Build Coastguard Worker pattern: "corpora/{corpus}/permissions/{permission}" 46*d5c09012SAndroid Build Coastguard Worker plural: "permissions" 47*d5c09012SAndroid Build Coastguard Worker singular: "permission" 48*d5c09012SAndroid Build Coastguard Worker }; 49*d5c09012SAndroid Build Coastguard Worker 50*d5c09012SAndroid Build Coastguard Worker // Defines types of the grantee of this permission. 51*d5c09012SAndroid Build Coastguard Worker enum GranteeType { 52*d5c09012SAndroid Build Coastguard Worker // The default value. This value is unused. 53*d5c09012SAndroid Build Coastguard Worker GRANTEE_TYPE_UNSPECIFIED = 0; 54*d5c09012SAndroid Build Coastguard Worker 55*d5c09012SAndroid Build Coastguard Worker // Represents a user. When set, you must provide email_address for the user. 56*d5c09012SAndroid Build Coastguard Worker USER = 1; 57*d5c09012SAndroid Build Coastguard Worker 58*d5c09012SAndroid Build Coastguard Worker // Represents a group. When set, you must provide email_address for the 59*d5c09012SAndroid Build Coastguard Worker // group. 60*d5c09012SAndroid Build Coastguard Worker GROUP = 2; 61*d5c09012SAndroid Build Coastguard Worker 62*d5c09012SAndroid Build Coastguard Worker // Represents access to everyone. No extra information is required. 63*d5c09012SAndroid Build Coastguard Worker EVERYONE = 3; 64*d5c09012SAndroid Build Coastguard Worker } 65*d5c09012SAndroid Build Coastguard Worker 66*d5c09012SAndroid Build Coastguard Worker // Defines the role granted by this permission. 67*d5c09012SAndroid Build Coastguard Worker enum Role { 68*d5c09012SAndroid Build Coastguard Worker // The default value. This value is unused. 69*d5c09012SAndroid Build Coastguard Worker ROLE_UNSPECIFIED = 0; 70*d5c09012SAndroid Build Coastguard Worker 71*d5c09012SAndroid Build Coastguard Worker // Owner can use, update, share and delete the resource. 72*d5c09012SAndroid Build Coastguard Worker OWNER = 1; 73*d5c09012SAndroid Build Coastguard Worker 74*d5c09012SAndroid Build Coastguard Worker // Writer can use, update and share the resource. 75*d5c09012SAndroid Build Coastguard Worker WRITER = 2; 76*d5c09012SAndroid Build Coastguard Worker 77*d5c09012SAndroid Build Coastguard Worker // Reader can use the resource. 78*d5c09012SAndroid Build Coastguard Worker READER = 3; 79*d5c09012SAndroid Build Coastguard Worker } 80*d5c09012SAndroid Build Coastguard Worker 81*d5c09012SAndroid Build Coastguard Worker // Output only. Identifier. The permission name. A unique name will be 82*d5c09012SAndroid Build Coastguard Worker // generated on create. Examples: 83*d5c09012SAndroid Build Coastguard Worker // tunedModels/{tuned_model}/permissions/{permission} 84*d5c09012SAndroid Build Coastguard Worker // corpora/{corpus}/permissions/{permission} 85*d5c09012SAndroid Build Coastguard Worker // Output only. 86*d5c09012SAndroid Build Coastguard Worker string name = 1 [ 87*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = OUTPUT_ONLY, 88*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = IDENTIFIER 89*d5c09012SAndroid Build Coastguard Worker ]; 90*d5c09012SAndroid Build Coastguard Worker 91*d5c09012SAndroid Build Coastguard Worker // Optional. Immutable. The type of the grantee. 92*d5c09012SAndroid Build Coastguard Worker optional GranteeType grantee_type = 2 [ 93*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = OPTIONAL, 94*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = IMMUTABLE 95*d5c09012SAndroid Build Coastguard Worker ]; 96*d5c09012SAndroid Build Coastguard Worker 97*d5c09012SAndroid Build Coastguard Worker // Optional. Immutable. The email address of the user of group which this 98*d5c09012SAndroid Build Coastguard Worker // permission refers. Field is not set when permission's grantee type is 99*d5c09012SAndroid Build Coastguard Worker // EVERYONE. 100*d5c09012SAndroid Build Coastguard Worker optional string email_address = 3 [ 101*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = OPTIONAL, 102*d5c09012SAndroid Build Coastguard Worker (google.api.field_behavior) = IMMUTABLE 103*d5c09012SAndroid Build Coastguard Worker ]; 104*d5c09012SAndroid Build Coastguard Worker 105*d5c09012SAndroid Build Coastguard Worker // Required. The role granted by this permission. 106*d5c09012SAndroid Build Coastguard Worker optional Role role = 4 [(google.api.field_behavior) = REQUIRED]; 107*d5c09012SAndroid Build Coastguard Worker} 108