# Checkpoints

# Permissions

## List checkpoint permissions

`client.FineTuning.Checkpoints.Permissions.Get(ctx, fineTunedModelCheckpoint, query) (*FineTuningCheckpointPermissionGetResponse, error)`

**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

- `fineTunedModelCheckpoint string`

- `query FineTuningCheckpointPermissionGetParams`

  - `After param.Field[string]`

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

  - `Limit param.Field[int64]`

    Number of permissions to retrieve.

  - `Order param.Field[FineTuningCheckpointPermissionGetParamsOrder]`

    The order in which to retrieve permissions.

    - `const FineTuningCheckpointPermissionGetParamsOrderAscending FineTuningCheckpointPermissionGetParamsOrder = "ascending"`

    - `const FineTuningCheckpointPermissionGetParamsOrderDescending FineTuningCheckpointPermissionGetParamsOrder = "descending"`

  - `ProjectID param.Field[string]`

    The ID of the project to get permissions for.

### Returns

- `type FineTuningCheckpointPermissionGetResponse struct{…}`

  - `Data []FineTuningCheckpointPermissionGetResponseData`

    - `ID string`

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

    - `CreatedAt int64`

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

    - `Object CheckpointPermission`

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

      - `const CheckpointPermissionCheckpointPermission CheckpointPermission = "checkpoint.permission"`

    - `ProjectID string`

      The project identifier that the permission is for.

  - `HasMore bool`

  - `Object List`

    - `const ListList List = "list"`

  - `FirstID string`

  - `LastID string`

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/openai/openai-go"
  "github.com/openai/openai-go/option"
)

func main() {
  client := openai.NewClient(
    option.WithAPIKey("My API Key"),
  )
  permission, err := client.FineTuning.Checkpoints.Permissions.Get(
    context.TODO(),
    "ft-AF1WoRqd3aJAHsqc9NY7iL8F",
    openai.FineTuningCheckpointPermissionGetParams{

    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", permission.FirstID)
}
```

#### 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

`client.FineTuning.Checkpoints.Permissions.List(ctx, fineTunedModelCheckpoint, query) (*ConversationCursorPage[FineTuningCheckpointPermissionListResponse], error)`

**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

- `fineTunedModelCheckpoint string`

- `query FineTuningCheckpointPermissionListParams`

  - `After param.Field[string]`

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

  - `Limit param.Field[int64]`

    Number of permissions to retrieve.

  - `Order param.Field[FineTuningCheckpointPermissionListParamsOrder]`

    The order in which to retrieve permissions.

    - `const FineTuningCheckpointPermissionListParamsOrderAscending FineTuningCheckpointPermissionListParamsOrder = "ascending"`

    - `const FineTuningCheckpointPermissionListParamsOrderDescending FineTuningCheckpointPermissionListParamsOrder = "descending"`

  - `ProjectID param.Field[string]`

    The ID of the project to get permissions for.

### Returns

- `type FineTuningCheckpointPermissionListResponse struct{…}`

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

  - `ID string`

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

  - `CreatedAt int64`

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

  - `Object CheckpointPermission`

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

    - `const CheckpointPermissionCheckpointPermission CheckpointPermission = "checkpoint.permission"`

  - `ProjectID string`

    The project identifier that the permission is for.

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/openai/openai-go"
  "github.com/openai/openai-go/option"
)

func main() {
  client := openai.NewClient(
    option.WithAPIKey("My API Key"),
  )
  page, err := client.FineTuning.Checkpoints.Permissions.List(
    context.TODO(),
    "ft-AF1WoRqd3aJAHsqc9NY7iL8F",
    openai.FineTuningCheckpointPermissionListParams{

    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", page)
}
```

#### 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

`client.FineTuning.Checkpoints.Permissions.New(ctx, fineTunedModelCheckpoint, body) (*Page[FineTuningCheckpointPermissionNewResponse], error)`

**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

- `fineTunedModelCheckpoint string`

- `body FineTuningCheckpointPermissionNewParams`

  - `ProjectIDs param.Field[[]string]`

    The project identifiers to grant access to.

### Returns

- `type FineTuningCheckpointPermissionNewResponse struct{…}`

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

  - `ID string`

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

  - `CreatedAt int64`

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

  - `Object CheckpointPermission`

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

    - `const CheckpointPermissionCheckpointPermission CheckpointPermission = "checkpoint.permission"`

  - `ProjectID string`

    The project identifier that the permission is for.

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/openai/openai-go"
  "github.com/openai/openai-go/option"
)

func main() {
  client := openai.NewClient(
    option.WithAPIKey("My API Key"),
  )
  page, err := client.FineTuning.Checkpoints.Permissions.New(
    context.TODO(),
    "ft:gpt-4o-mini-2024-07-18:org:weather:B7R9VjQd",
    openai.FineTuningCheckpointPermissionNewParams{
      ProjectIDs: []string{"string"},
    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", page)
}
```

#### 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

`client.FineTuning.Checkpoints.Permissions.Delete(ctx, fineTunedModelCheckpoint, permissionID) (*FineTuningCheckpointPermissionDeleteResponse, error)`

**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

- `fineTunedModelCheckpoint string`

- `permissionID string`

### Returns

- `type FineTuningCheckpointPermissionDeleteResponse struct{…}`

  - `ID string`

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

  - `Deleted bool`

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

  - `Object CheckpointPermission`

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

    - `const CheckpointPermissionCheckpointPermission CheckpointPermission = "checkpoint.permission"`

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/openai/openai-go"
  "github.com/openai/openai-go/option"
)

func main() {
  client := openai.NewClient(
    option.WithAPIKey("My API Key"),
  )
  permission, err := client.FineTuning.Checkpoints.Permissions.Delete(
    context.TODO(),
    "ft:gpt-4o-mini-2024-07-18:org:weather:B7R9VjQd",
    "cp_zc4Q7MP6XxulcVzj4MZdwsAB",
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", permission.ID)
}
```

#### Response

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