# Corpus Permissions

## Method: corpora.permissions.create

- [Endpoint](https://ai.google.dev/api/semantic-retrieval/permissions#body.HTTP_TEMPLATE)
- [Path parameters](https://ai.google.dev/api/semantic-retrieval/permissions#body.PATH_PARAMETERS)
- [Request body](https://ai.google.dev/api/semantic-retrieval/permissions#body.request_body)
- [Response body](https://ai.google.dev/api/semantic-retrieval/permissions#body.response_body)
- [Authorization scopes](https://ai.google.dev/api/semantic-retrieval/permissions#body.aspect)
- [Example request](https://ai.google.dev/api/semantic-retrieval/permissions#body.codeSnippets)
  - [Create(Tuned Model)](https://ai.google.dev/api/semantic-retrieval/permissions#body.codeSnippets.group)

Create a permission to a specific resource.  

### Endpoint

post `https:``/``/generativelanguage.googleapis.com``/v1beta``/{parent=corpora``/*}``/permissions`   

### Path parameters

`parent` `string`  
Required. The parent resource of the `Permission`. Formats: `tunedModels/{tunedModel}` `corpora/{corpus}` It takes the form `corpora/{corpora}`.

### Request body

The request body contains an instance of [Permission](https://ai.google.dev/api/semantic-retrieval/permissions#Permission).
Fields `granteeType` `enum (`[GranteeType](https://ai.google.dev/api/semantic-retrieval/permissions#Permission.GranteeType)`)`  
Optional. Immutable. The type of the grantee.
`emailAddress` `string`  
Optional. Immutable. The email address of the user of group which this permission refers. Field is not set when permission's grantee type is EVERYONE.
`role` `enum (`[Role](https://ai.google.dev/api/semantic-retrieval/permissions#Permission.Role)`)`  
Required. The role granted by this permission.  

### Example request

### Python

    # With Gemini 2 we're launching a new SDK. See the following doc for details.
    # https://ai.google.dev/gemini-api/docs/migrate  
    https://github.com/google-gemini/deprecated-generative-ai-python/blob/658b54b4e43895cb0e6f3bb0a6011bbaf98be5f0/README.md#L23-L24

### Response body

If successful, the response body contains a newly created instance of [Permission](https://ai.google.dev/api/semantic-retrieval/permissions#Permission).  

## Method: corpora.permissions.list

- [Endpoint](https://ai.google.dev/api/semantic-retrieval/permissions#body.HTTP_TEMPLATE)
- [Path parameters](https://ai.google.dev/api/semantic-retrieval/permissions#body.PATH_PARAMETERS)
- [Query parameters](https://ai.google.dev/api/semantic-retrieval/permissions#body.QUERY_PARAMETERS)
- [Request body](https://ai.google.dev/api/semantic-retrieval/permissions#body.request_body)
- [Response body](https://ai.google.dev/api/semantic-retrieval/permissions#body.response_body)
- [Authorization scopes](https://ai.google.dev/api/semantic-retrieval/permissions#body.aspect)
- [Example request](https://ai.google.dev/api/semantic-retrieval/permissions#body.codeSnippets)
  - [List(Tuned Model)](https://ai.google.dev/api/semantic-retrieval/permissions#body.codeSnippets.group)

Lists permissions for the specific resource.  

### Endpoint

get `https:``/``/generativelanguage.googleapis.com``/v1beta``/{parent=corpora``/*}``/permissions`   

### Path parameters

`parent` `string`  
Required. The parent resource of the permissions. Formats: `tunedModels/{tunedModel}` `corpora/{corpus}` It takes the form `corpora/{corpora}`.

### Query parameters

`pageSize` `integer`  
Optional. The maximum number of `Permission`s to return (per page). The service may return fewer permissions.

If unspecified, at most 10 permissions will be returned. This method returns at most 1000 permissions per page, even if you pass larger pageSize.
`pageToken` `string`  
Optional. A page token, received from a previous `permissions.list` call.

Provide the `pageToken` returned by one request as an argument to the next request to retrieve the next page.

When paginating, all other parameters provided to `permissions.list` must match the call that provided the page token.

### Request body

The request body must be empty.  

### Example request

### Python

    # With Gemini 2 we're launching a new SDK. See the following doc for details.
    # https://ai.google.dev/gemini-api/docs/migrate  
    https://github.com/google-gemini/deprecated-generative-ai-python/blob/658b54b4e43895cb0e6f3bb0a6011bbaf98be5f0/README.md#L23-L24

### Response body

If successful, the response body contains an instance of [ListPermissionsResponse](https://ai.google.dev/api/semantic-retrieval/permissions#v1beta.ListPermissionsResponse).  

## Method: corpora.permissions.get

- [Endpoint](https://ai.google.dev/api/semantic-retrieval/permissions#body.HTTP_TEMPLATE)
- [Path parameters](https://ai.google.dev/api/semantic-retrieval/permissions#body.PATH_PARAMETERS)
- [Request body](https://ai.google.dev/api/semantic-retrieval/permissions#body.request_body)
- [Response body](https://ai.google.dev/api/semantic-retrieval/permissions#body.response_body)
- [Authorization scopes](https://ai.google.dev/api/semantic-retrieval/permissions#body.aspect)
- [Example request](https://ai.google.dev/api/semantic-retrieval/permissions#body.codeSnippets)
  - [Get(Tuned Model)](https://ai.google.dev/api/semantic-retrieval/permissions#body.codeSnippets.group)

Gets information about a specific Permission.  

### Endpoint

get `https:``/``/generativelanguage.googleapis.com``/v1beta``/{name=corpora``/*``/permissions``/*}`   

### Path parameters

`name` `string`  
Required. The resource name of the permission.

Formats: `tunedModels/{tunedModel}/permissions/{permission}` `corpora/{corpus}/permissions/{permission}` It takes the form `corpora/{corpora}/permissions/{permission}`.

### Request body

The request body must be empty.  

### Example request

### Python

    # With Gemini 2 we're launching a new SDK. See the following doc for details.
    # https://ai.google.dev/gemini-api/docs/migrate  
    https://github.com/google-gemini/deprecated-generative-ai-python/blob/658b54b4e43895cb0e6f3bb0a6011bbaf98be5f0/README.md#L23-L24

### Response body

If successful, the response body contains an instance of [Permission](https://ai.google.dev/api/semantic-retrieval/permissions#Permission).  

## Method: corpora.permissions.patch

- [Endpoint](https://ai.google.dev/api/semantic-retrieval/permissions#body.HTTP_TEMPLATE)
- [Path parameters](https://ai.google.dev/api/semantic-retrieval/permissions#body.PATH_PARAMETERS)
- [Query parameters](https://ai.google.dev/api/semantic-retrieval/permissions#body.QUERY_PARAMETERS)
- [Request body](https://ai.google.dev/api/semantic-retrieval/permissions#body.request_body)
- [Response body](https://ai.google.dev/api/semantic-retrieval/permissions#body.response_body)
- [Authorization scopes](https://ai.google.dev/api/semantic-retrieval/permissions#body.aspect)
- [Example request](https://ai.google.dev/api/semantic-retrieval/permissions#body.codeSnippets)
  - [Update(Tuned Model)](https://ai.google.dev/api/semantic-retrieval/permissions#body.codeSnippets.group)

Updates the permission.  

### Endpoint

patch `https:``/``/generativelanguage.googleapis.com``/v1beta``/{permission.name=corpora``/*``/permissions``/*}`   
`PATCH https://generativelanguage.googleapis.com/v1beta/{permission.name=corpora/*/permissions/*}`

### Path parameters

`permission.name` `string`  
Output only. Identifier. The permission name. A unique name will be generated on create. Examples: tunedModels/{tunedModel}/permissions/{permission} corpora/{corpus}/permissions/{permission} Output only. It takes the form `corpora/{corpora}/permissions/{permission}`.

### Query parameters

`updateMask` `string (`[FieldMask](https://protobuf.dev/reference/protobuf/google.protobuf/#field-mask)` format)`  
Required. The list of fields to update. Accepted ones: - role (`Permission.role` field)

This is a comma-separated list of fully qualified names of fields. Example: `"user.displayName,photo"`.

### Request body

The request body contains an instance of [Permission](https://ai.google.dev/api/semantic-retrieval/permissions#Permission).
Fields `role` `enum (`[Role](https://ai.google.dev/api/semantic-retrieval/permissions#Permission.Role)`)`  
Required. The role granted by this permission.  

### Example request

### Python

    # With Gemini 2 we're launching a new SDK. See the following doc for details.
    # https://ai.google.dev/gemini-api/docs/migrate  
    https://github.com/google-gemini/deprecated-generative-ai-python/blob/658b54b4e43895cb0e6f3bb0a6011bbaf98be5f0/README.md#L23-L24

### Response body

If successful, the response body contains an instance of [Permission](https://ai.google.dev/api/semantic-retrieval/permissions#Permission).  

## Method: corpora.permissions.delete

- [Endpoint](https://ai.google.dev/api/semantic-retrieval/permissions#body.HTTP_TEMPLATE)
- [Path parameters](https://ai.google.dev/api/semantic-retrieval/permissions#body.PATH_PARAMETERS)
- [Request body](https://ai.google.dev/api/semantic-retrieval/permissions#body.request_body)
- [Response body](https://ai.google.dev/api/semantic-retrieval/permissions#body.response_body)
- [Authorization scopes](https://ai.google.dev/api/semantic-retrieval/permissions#body.aspect)
- [Example request](https://ai.google.dev/api/semantic-retrieval/permissions#body.codeSnippets)
  - [Delete(Tuned Model)](https://ai.google.dev/api/semantic-retrieval/permissions#body.codeSnippets.group)

Deletes the permission.  

### Endpoint

delete `https:``/``/generativelanguage.googleapis.com``/v1beta``/{name=corpora``/*``/permissions``/*}`   

### Path parameters

`name` `string`  
Required. The resource name of the permission. Formats: `tunedModels/{tunedModel}/permissions/{permission}` `corpora/{corpus}/permissions/{permission}` It takes the form `corpora/{corpora}/permissions/{permission}`.

### Request body

The request body must be empty.  

### Example request

### Python

    # With Gemini 2 we're launching a new SDK. See the following doc for details.
    # https://ai.google.dev/gemini-api/docs/migrate  
    https://github.com/google-gemini/deprecated-generative-ai-python/blob/658b54b4e43895cb0e6f3bb0a6011bbaf98be5f0/README.md#L23-L24

### Response body

If successful, the response body is an empty JSON object.  

## REST Resource: corpora.permissions

- [Resource: Permission](https://ai.google.dev/api/semantic-retrieval/permissions#Permission)
  - [JSON representation](https://ai.google.dev/api/semantic-retrieval/permissions#Permission.SCHEMA_REPRESENTATION)
  - [GranteeType](https://ai.google.dev/api/semantic-retrieval/permissions#Permission.GranteeType)
  - [Role](https://ai.google.dev/api/semantic-retrieval/permissions#Permission.Role)
- [Methods](https://ai.google.dev/api/semantic-retrieval/permissions#METHODS_SUMMARY)

## Resource: Permission

Permission resource grants user, group or the rest of the world access to the PaLM API resource (e.g. a tuned model, corpus).

A role is a collection of permitted operations that allows users to perform specific actions on PaLM API resources. To make them available to users, groups, or service accounts, you assign roles. When you assign a role, you grant permissions that the role contains.

There are three concentric roles. Each role is a superset of the previous role's permitted operations:

- reader can use the resource (e.g. tuned model, corpus) for inference
- writer has reader's permissions and additionally can edit and share
- owner has writer's permissions and additionally can delete
Fields `name` `string`  
Output only. Identifier. The permission name. A unique name will be generated on create. Examples: tunedModels/{tunedModel}/permissions/{permission} corpora/{corpus}/permissions/{permission} Output only.
`granteeType` `enum (`[GranteeType](https://ai.google.dev/api/semantic-retrieval/permissions#Permission.GranteeType)`)`  
Optional. Immutable. The type of the grantee.
`emailAddress` `string`  
Optional. Immutable. The email address of the user of group which this permission refers. Field is not set when permission's grantee type is EVERYONE.
`role` `enum (`[Role](https://ai.google.dev/api/semantic-retrieval/permissions#Permission.Role)`)`  
Required. The role granted by this permission.  

|                                                                                                                JSON representation                                                                                                                 |
|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ``` { "name": string, "granteeType": enum (https://ai.google.dev/api/semantic-retrieval/permissions#Permission.GranteeType), "emailAddress": string, "role": enum (https://ai.google.dev/api/semantic-retrieval/permissions#Permission.Role) } ``` |

### GranteeType

Defines types of the grantee of this permission.

|                                                 Enums                                                  ||
|----------------------------|----------------------------------------------------------------------------|
| `GRANTEE_TYPE_UNSPECIFIED` | The default value. This value is unused.                                   |
| `USER`                     | Represents a user. When set, you must provide emailAddress for the user.   |
| `GROUP`                    | Represents a group. When set, you must provide emailAddress for the group. |
| `EVERYONE`                 | Represents access to everyone. No extra information is required.           |

### Role

Defines the role granted by this permission.

|                                   Enums                                   ||
|--------------------|-------------------------------------------------------|
| `ROLE_UNSPECIFIED` | The default value. This value is unused.              |
| `OWNER`            | Owner can use, update, share and delete the resource. |
| `WRITER`           | Writer can use, update and share the resource.        |
| `READER`           | Reader can use the resource.                          |

## ListPermissionsResponse

- [JSON representation](https://ai.google.dev/api/semantic-retrieval/permissions#SCHEMA_REPRESENTATION)

Response from `ListPermissions` containing a paginated list of permissions.
Fields `permissions[]` `object (`[Permission](https://ai.google.dev/api/semantic-retrieval/permissions#Permission)`)`  
Returned permissions.
`nextPageToken` `string`  
A token, which can be sent as `pageToken` to retrieve the next page.

If this field is omitted, there are no more pages.  

|                                                           JSON representation                                                            |
|------------------------------------------------------------------------------------------------------------------------------------------|
| ``` { "permissions": [ { object (https://ai.google.dev/api/semantic-retrieval/permissions#Permission) } ], "nextPageToken": string } ``` |