# Checkpoints

# Permissions

## List checkpoint permissions

`PermissionRetrieveResponse fineTuning().checkpoints().permissions().retrieve(PermissionRetrieveParamsparams = PermissionRetrieveParams.none(), RequestOptionsrequestOptions = RequestOptions.none())`

**get** `/fine_tuning/checkpoints/{fine_tuned_model_checkpoint}/permissions`

**NOTE:** This endpoint requires an [admin API key](../admin-api-keys).

Organization owners can use this endpoint to view all permissions for a fine-tuned model checkpoint.

### Parameters

- `PermissionRetrieveParams params`

  - `Optional<String> fineTunedModelCheckpoint`

  - `Optional<String> after`

    Identifier for the last permission ID from the previous pagination request.

  - `Optional<Long> limit`

    Number of permissions to retrieve.

  - `Optional<Order> order`

    The order in which to retrieve permissions.

    - `ASCENDING("ascending")`

    - `DESCENDING("descending")`

  - `Optional<String> projectId`

    The ID of the project to get permissions for.

### Returns

- `class PermissionRetrieveResponse:`

  - `List<Data> data`

    - `String id`

      The permission identifier, which can be referenced in the API endpoints.

    - `long createdAt`

      The Unix timestamp (in seconds) for when the permission was created.

    - `JsonValue; object_ "checkpoint.permission"constant`

      The object type, which is always "checkpoint.permission".

      - `CHECKPOINT_PERMISSION("checkpoint.permission")`

    - `String projectId`

      The project identifier that the permission is for.

  - `boolean hasMore`

  - `JsonValue; object_ "list"constant`

    - `LIST("list")`

  - `Optional<String> firstId`

  - `Optional<String> lastId`

### Example

```java
package com.openai.example;

import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.finetuning.checkpoints.permissions.PermissionRetrieveParams;
import com.openai.models.finetuning.checkpoints.permissions.PermissionRetrieveResponse;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        OpenAIClient client = OpenAIOkHttpClient.fromEnv();

        PermissionRetrieveResponse permission = client.fineTuning().checkpoints().permissions().retrieve("ft-AF1WoRqd3aJAHsqc9NY7iL8F");
    }
}
```

#### Response

```json
{
  "data": [
    {
      "id": "id",
      "created_at": 0,
      "object": "checkpoint.permission",
      "project_id": "project_id"
    }
  ],
  "has_more": true,
  "object": "list",
  "first_id": "first_id",
  "last_id": "last_id"
}
```

## List checkpoint permissions

`PermissionListPage fineTuning().checkpoints().permissions().list(PermissionListParamsparams = PermissionListParams.none(), RequestOptionsrequestOptions = RequestOptions.none())`

**get** `/fine_tuning/checkpoints/{fine_tuned_model_checkpoint}/permissions`

**NOTE:** This endpoint requires an [admin API key](../admin-api-keys).

Organization owners can use this endpoint to view all permissions for a fine-tuned model checkpoint.

### Parameters

- `PermissionListParams params`

  - `Optional<String> fineTunedModelCheckpoint`

  - `Optional<String> after`

    Identifier for the last permission ID from the previous pagination request.

  - `Optional<Long> limit`

    Number of permissions to retrieve.

  - `Optional<Order> order`

    The order in which to retrieve permissions.

    - `ASCENDING("ascending")`

    - `DESCENDING("descending")`

  - `Optional<String> projectId`

    The ID of the project to get permissions for.

### Returns

- `class PermissionListResponse:`

  The `checkpoint.permission` object represents a permission for a fine-tuned model checkpoint.

  - `String id`

    The permission identifier, which can be referenced in the API endpoints.

  - `long createdAt`

    The Unix timestamp (in seconds) for when the permission was created.

  - `JsonValue; object_ "checkpoint.permission"constant`

    The object type, which is always "checkpoint.permission".

    - `CHECKPOINT_PERMISSION("checkpoint.permission")`

  - `String projectId`

    The project identifier that the permission is for.

### Example

```java
package com.openai.example;

import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.finetuning.checkpoints.permissions.PermissionListPage;
import com.openai.models.finetuning.checkpoints.permissions.PermissionListParams;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        OpenAIClient client = OpenAIOkHttpClient.fromEnv();

        PermissionListPage page = client.fineTuning().checkpoints().permissions().list("ft-AF1WoRqd3aJAHsqc9NY7iL8F");
    }
}
```

#### Response

```json
{
  "data": [
    {
      "id": "id",
      "created_at": 0,
      "object": "checkpoint.permission",
      "project_id": "project_id"
    }
  ],
  "has_more": true,
  "object": "list",
  "first_id": "first_id",
  "last_id": "last_id"
}
```

## Create checkpoint permissions

`PermissionCreatePage fineTuning().checkpoints().permissions().create(PermissionCreateParamsparams, RequestOptionsrequestOptions = RequestOptions.none())`

**post** `/fine_tuning/checkpoints/{fine_tuned_model_checkpoint}/permissions`

**NOTE:** Calling this endpoint requires an [admin API key](../admin-api-keys).

This enables organization owners to share fine-tuned models with other projects in their organization.

### Parameters

- `PermissionCreateParams params`

  - `Optional<String> fineTunedModelCheckpoint`

  - `List<String> projectIds`

    The project identifiers to grant access to.

### Returns

- `class PermissionCreateResponse:`

  The `checkpoint.permission` object represents a permission for a fine-tuned model checkpoint.

  - `String id`

    The permission identifier, which can be referenced in the API endpoints.

  - `long createdAt`

    The Unix timestamp (in seconds) for when the permission was created.

  - `JsonValue; object_ "checkpoint.permission"constant`

    The object type, which is always "checkpoint.permission".

    - `CHECKPOINT_PERMISSION("checkpoint.permission")`

  - `String projectId`

    The project identifier that the permission is for.

### Example

```java
package com.openai.example;

import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.finetuning.checkpoints.permissions.PermissionCreatePage;
import com.openai.models.finetuning.checkpoints.permissions.PermissionCreateParams;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        OpenAIClient client = OpenAIOkHttpClient.fromEnv();

        PermissionCreateParams params = PermissionCreateParams.builder()
            .fineTunedModelCheckpoint("ft:gpt-4o-mini-2024-07-18:org:weather:B7R9VjQd")
            .addProjectId("string")
            .build();
        PermissionCreatePage page = client.fineTuning().checkpoints().permissions().create(params);
    }
}
```

#### Response

```json
{
  "data": [
    {
      "id": "id",
      "created_at": 0,
      "object": "checkpoint.permission",
      "project_id": "project_id"
    }
  ],
  "has_more": true,
  "object": "list",
  "first_id": "first_id",
  "last_id": "last_id"
}
```

## Delete checkpoint permission

`PermissionDeleteResponse fineTuning().checkpoints().permissions().delete(PermissionDeleteParamsparams, RequestOptionsrequestOptions = RequestOptions.none())`

**delete** `/fine_tuning/checkpoints/{fine_tuned_model_checkpoint}/permissions/{permission_id}`

**NOTE:** This endpoint requires an [admin API key](../admin-api-keys).

Organization owners can use this endpoint to delete a permission for a fine-tuned model checkpoint.

### Parameters

- `PermissionDeleteParams params`

  - `String fineTunedModelCheckpoint`

  - `Optional<String> permissionId`

### Returns

- `class PermissionDeleteResponse:`

  - `String id`

    The ID of the fine-tuned model checkpoint permission that was deleted.

  - `boolean deleted`

    Whether the fine-tuned model checkpoint permission was successfully deleted.

  - `JsonValue; object_ "checkpoint.permission"constant`

    The object type, which is always "checkpoint.permission".

    - `CHECKPOINT_PERMISSION("checkpoint.permission")`

### Example

```java
package com.openai.example;

import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.finetuning.checkpoints.permissions.PermissionDeleteParams;
import com.openai.models.finetuning.checkpoints.permissions.PermissionDeleteResponse;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        OpenAIClient client = OpenAIOkHttpClient.fromEnv();

        PermissionDeleteParams params = PermissionDeleteParams.builder()
            .fineTunedModelCheckpoint("ft:gpt-4o-mini-2024-07-18:org:weather:B7R9VjQd")
            .permissionId("cp_zc4Q7MP6XxulcVzj4MZdwsAB")
            .build();
        PermissionDeleteResponse permission = client.fineTuning().checkpoints().permissions().delete(params);
    }
}
```

#### Response

```json
{
  "id": "id",
  "deleted": true,
  "object": "checkpoint.permission"
}
```
