## Create Directory

`client.Beta.Directories.New(ctx, params) (*BetaDirectoryNewResponse, error)`

**post** `/api/v1/beta/directories`

Create a new directory within the specified project.

### Parameters

- `params BetaDirectoryNewParams`

  - `Name param.Field[string]`

    Body param: Human-readable name for the directory.

  - `OrganizationID param.Field[string]`

    Query param

  - `ProjectID param.Field[string]`

    Query param

  - `Description param.Field[string]`

    Body param: Optional description shown to users.

  - `SystemMetadata param.Field[map[string, any]]`

    Body param: Reserved system-managed metadata.

  - `Type param.Field[BetaDirectoryNewParamsType]`

    Body param: Directory type. Use 'ephemeral' for batch processing with automatic cleanup.

    - `const BetaDirectoryNewParamsTypeEphemeral BetaDirectoryNewParamsType = "ephemeral"`

    - `const BetaDirectoryNewParamsTypeUser BetaDirectoryNewParamsType = "user"`

### Returns

- `type BetaDirectoryNewResponse struct{…}`

  API response schema for a directory.

  - `ID string`

    Unique identifier for the directory.

  - `Name string`

    Human-readable name for the directory.

  - `ProjectID string`

    Project the directory belongs to.

  - `CreatedAt Time`

    Creation datetime

  - `DeletedAt Time`

    Optional timestamp of when the directory was deleted. Null if not deleted.

  - `Description string`

    Optional description shown to users.

  - `ExpiresAt Time`

    When this directory expires and is eligible for cleanup.

  - `SystemMetadata map[string, any]`

    Reserved system-managed metadata.

  - `Type BetaDirectoryNewResponseType`

    Directory type: 'user', 'index', or 'ephemeral'.

    - `const BetaDirectoryNewResponseTypeEphemeral BetaDirectoryNewResponseType = "ephemeral"`

    - `const BetaDirectoryNewResponseTypeIndex BetaDirectoryNewResponseType = "index"`

    - `const BetaDirectoryNewResponseTypeUser BetaDirectoryNewResponseType = "user"`

  - `UpdatedAt Time`

    Update datetime

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/run-llama/llama-parse-go"
  "github.com/run-llama/llama-parse-go/option"
)

func main() {
  client := llamacloud.NewClient(
    option.WithAPIKey("My API Key"),
  )
  directory, err := client.Beta.Directories.New(context.TODO(), llamacloud.BetaDirectoryNewParams{
    Name: "x",
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", directory.ID)
}
```

#### Response

```json
{
  "id": "id",
  "name": "x",
  "project_id": "project_id",
  "created_at": "2019-12-27T18:11:19.117Z",
  "deleted_at": "2019-12-27T18:11:19.117Z",
  "description": "description",
  "expires_at": "2019-12-27T18:11:19.117Z",
  "system_metadata": {
    "foo": "bar"
  },
  "type": "ephemeral",
  "updated_at": "2019-12-27T18:11:19.117Z"
}
```
