# Agent Data

## Get Agent Data

`AgentData Beta.AgentData.Get(AgentDataGetParamsparameters, CancellationTokencancellationToken = default)`

**get** `/api/v1/beta/agent-data/{item_id}`

Get agent data by ID.

### Parameters

- `AgentDataGetParams parameters`

  - `required string itemID`

  - `string? organizationID`

  - `string? projectID`

### Returns

- `class AgentData:`

  API Result for a single agent data item

  - `required IReadOnlyDictionary<string, JsonElement> Data`

  - `required string DeploymentName`

  - `string? ID`

  - `string Collection`

  - `DateTimeOffset? CreatedAt`

  - `string? ProjectID`

  - `DateTimeOffset? UpdatedAt`

### Example

```csharp
AgentDataGetParams parameters = new() { ItemID = "item_id" };

var agentData = await client.Beta.AgentData.Get(parameters);

Console.WriteLine(agentData);
```

#### Response

```json
{
  "data": {
    "foo": "bar"
  },
  "deployment_name": "deployment_name",
  "id": "id",
  "collection": "collection",
  "created_at": "2019-12-27T18:11:19.117Z",
  "project_id": "project_id",
  "updated_at": "2019-12-27T18:11:19.117Z"
}
```

## Update Agent Data

`AgentData Beta.AgentData.Update(AgentDataUpdateParamsparameters, CancellationTokencancellationToken = default)`

**put** `/api/v1/beta/agent-data/{item_id}`

Update agent data by ID (overwrites).

### Parameters

- `AgentDataUpdateParams parameters`

  - `required string itemID`

    Path param

  - `required IReadOnlyDictionary<string, JsonElement> data`

    Body param

  - `string? organizationID`

    Query param

  - `string? projectID`

    Query param

### Returns

- `class AgentData:`

  API Result for a single agent data item

  - `required IReadOnlyDictionary<string, JsonElement> Data`

  - `required string DeploymentName`

  - `string? ID`

  - `string Collection`

  - `DateTimeOffset? CreatedAt`

  - `string? ProjectID`

  - `DateTimeOffset? UpdatedAt`

### Example

```csharp
AgentDataUpdateParams parameters = new()
{
    ItemID = "item_id",
    Data = new Dictionary<string, JsonElement>()
    {
        { "foo", JsonSerializer.SerializeToElement("bar") }
    },
};

var agentData = await client.Beta.AgentData.Update(parameters);

Console.WriteLine(agentData);
```

#### Response

```json
{
  "data": {
    "foo": "bar"
  },
  "deployment_name": "deployment_name",
  "id": "id",
  "collection": "collection",
  "created_at": "2019-12-27T18:11:19.117Z",
  "project_id": "project_id",
  "updated_at": "2019-12-27T18:11:19.117Z"
}
```

## Delete Agent Data

`IReadOnlyDictionary<string, string> Beta.AgentData.Delete(AgentDataDeleteParamsparameters, CancellationTokencancellationToken = default)`

**delete** `/api/v1/beta/agent-data/{item_id}`

Delete agent data by ID.

### Parameters

- `AgentDataDeleteParams parameters`

  - `required string itemID`

  - `string? organizationID`

  - `string? projectID`

### Example

```csharp
AgentDataDeleteParams parameters = new() { ItemID = "item_id" };

var agentData = await client.Beta.AgentData.Delete(parameters);

Console.WriteLine(agentData);
```

#### Response

```json
{
  "foo": "string"
}
```

## Create Agent Data

`AgentData Beta.AgentData.Create(AgentDataCreateParamsparameters, CancellationTokencancellationToken = default)`

**post** `/api/v1/beta/agent-data`

Create new agent data.

### Parameters

- `AgentDataCreateParams parameters`

  - `required IReadOnlyDictionary<string, JsonElement> data`

    Body param

  - `required string deploymentName`

    Body param

  - `string? organizationID`

    Query param

  - `string? projectID`

    Query param

  - `string collection`

    Body param

### Returns

- `class AgentData:`

  API Result for a single agent data item

  - `required IReadOnlyDictionary<string, JsonElement> Data`

  - `required string DeploymentName`

  - `string? ID`

  - `string Collection`

  - `DateTimeOffset? CreatedAt`

  - `string? ProjectID`

  - `DateTimeOffset? UpdatedAt`

### Example

```csharp
AgentDataCreateParams parameters = new()
{
    Data = new Dictionary<string, JsonElement>()
    {
        { "foo", JsonSerializer.SerializeToElement("bar") }
    },
    DeploymentName = "deployment_name",
};

var agentData = await client.Beta.AgentData.Create(parameters);

Console.WriteLine(agentData);
```

#### Response

```json
{
  "data": {
    "foo": "bar"
  },
  "deployment_name": "deployment_name",
  "id": "id",
  "collection": "collection",
  "created_at": "2019-12-27T18:11:19.117Z",
  "project_id": "project_id",
  "updated_at": "2019-12-27T18:11:19.117Z"
}
```

## Search Agent Data

`AgentDataSearchPageResponse Beta.AgentData.Search(AgentDataSearchParamsparameters, CancellationTokencancellationToken = default)`

**post** `/api/v1/beta/agent-data/:search`

Search agent data with filtering, sorting, and pagination.

### Parameters

- `AgentDataSearchParams parameters`

  - `required string deploymentName`

    Body param: The agent deployment's name to search within

  - `string? organizationID`

    Query param

  - `string? projectID`

    Query param

  - `string collection`

    Body param: The logical agent data collection to search within

  - `IReadOnlyDictionary<string, FilterItem>? filter`

    Body param: A filter object or expression that filters resources listed in the response.

    - `Eq? Eq`

      - `Double`

      - `string`

      - `DateTimeOffset`

    - `IReadOnlyList<Exclude?> Excludes`

      - `Double`

      - `string`

      - `DateTimeOffset`

    - `Gt? Gt`

      - `Double`

      - `string`

      - `DateTimeOffset`

    - `Gte? Gte`

      - `Double`

      - `string`

      - `DateTimeOffset`

    - `IReadOnlyList<Include?> Includes`

      - `Double`

      - `string`

      - `DateTimeOffset`

    - `Lt? Lt`

      - `Double`

      - `string`

      - `DateTimeOffset`

    - `Lte? Lte`

      - `Double`

      - `string`

      - `DateTimeOffset`

    - `Ne? Ne`

      - `Double`

      - `string`

      - `DateTimeOffset`

  - `Boolean includeTotal`

    Body param: Whether to include the total number of items in the response

  - `Long? offset`

    Body param: The offset to start from. If not provided, the first page is returned

  - `string? orderBy`

    Body param: A comma-separated list of fields to order by, sorted in ascending order. Use 'field_name desc' to specify descending order.

  - `Long? pageSize`

    Body param: The maximum number of items to return. The service may return fewer than this value. If unspecified, a default page size will be used. The maximum value is typically 1000; values above this will be coerced to the maximum.

  - `string? pageToken`

    Body param: A page token, received from a previous list call. Provide this to retrieve the subsequent page.

### Returns

- `class AgentDataSearchPageResponse:`

  - `required IReadOnlyList<AgentData> Items`

    The list of items.

    - `required IReadOnlyDictionary<string, JsonElement> Data`

    - `required string DeploymentName`

    - `string? ID`

    - `string Collection`

    - `DateTimeOffset? CreatedAt`

    - `string? ProjectID`

    - `DateTimeOffset? UpdatedAt`

  - `string? NextPageToken`

    A token, which can be sent as page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.

  - `Long? TotalSize`

    The total number of items available. This is only populated when specifically requested. The value may be an estimate and can be used for display purposes only.

### Example

```csharp
AgentDataSearchParams parameters = new() { DeploymentName = "deployment_name" };

var page = await client.Beta.AgentData.Search(parameters);
await foreach (var item in page.Paginate())
{
    Console.WriteLine(item);
}
```

#### Response

```json
{
  "items": [
    {
      "data": {
        "foo": "bar"
      },
      "deployment_name": "deployment_name",
      "id": "id",
      "collection": "collection",
      "created_at": "2019-12-27T18:11:19.117Z",
      "project_id": "project_id",
      "updated_at": "2019-12-27T18:11:19.117Z"
    }
  ],
  "next_page_token": "next_page_token",
  "total_size": 0
}
```

## Aggregate Agent Data

`AgentDataAggregatePageResponse Beta.AgentData.Aggregate(AgentDataAggregateParamsparameters, CancellationTokencancellationToken = default)`

**post** `/api/v1/beta/agent-data/:aggregate`

Aggregate agent data with grouping and optional counting/first item retrieval.

### Parameters

- `AgentDataAggregateParams parameters`

  - `required string deploymentName`

    Body param: The agent deployment's name to aggregate data for

  - `string? organizationID`

    Query param

  - `string? projectID`

    Query param

  - `string collection`

    Body param: The logical agent data collection to aggregate data for

  - `Boolean? count`

    Body param: Whether to count the number of items in each group

  - `IReadOnlyDictionary<string, FilterItem>? filter`

    Body param: A filter object or expression that filters resources listed in the response.

    - `Eq? Eq`

      - `Double`

      - `string`

      - `DateTimeOffset`

    - `IReadOnlyList<Exclude?> Excludes`

      - `Double`

      - `string`

      - `DateTimeOffset`

    - `Gt? Gt`

      - `Double`

      - `string`

      - `DateTimeOffset`

    - `Gte? Gte`

      - `Double`

      - `string`

      - `DateTimeOffset`

    - `IReadOnlyList<Include?> Includes`

      - `Double`

      - `string`

      - `DateTimeOffset`

    - `Lt? Lt`

      - `Double`

      - `string`

      - `DateTimeOffset`

    - `Lte? Lte`

      - `Double`

      - `string`

      - `DateTimeOffset`

    - `Ne? Ne`

      - `Double`

      - `string`

      - `DateTimeOffset`

  - `Boolean? first`

    Body param: Whether to return the first item in each group (Sorted by created_at)

  - `IReadOnlyList<string>? groupBy`

    Body param: The fields to group by. If empty, the entire dataset is grouped on. e.g. if left out, can be used for simple count operations

  - `Long? offset`

    Body param: The offset to start from. If not provided, the first page is returned

  - `string? orderBy`

    Body param: A comma-separated list of fields to order by, sorted in ascending order. Use 'field_name desc' to specify descending order.

  - `Long? pageSize`

    Body param: The maximum number of items to return. The service may return fewer than this value. If unspecified, a default page size will be used. The maximum value is typically 1000; values above this will be coerced to the maximum.

  - `string? pageToken`

    Body param: A page token, received from a previous list call. Provide this to retrieve the subsequent page.

### Returns

- `class AgentDataAggregatePageResponse:`

  - `required IReadOnlyList<AgentDataAggregateResponse> Items`

    The list of items.

    - `required IReadOnlyDictionary<string, JsonElement> GroupKey`

    - `Long? Count`

    - `IReadOnlyDictionary<string, JsonElement>? FirstItem`

  - `string? NextPageToken`

    A token, which can be sent as page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.

  - `Long? TotalSize`

    The total number of items available. This is only populated when specifically requested. The value may be an estimate and can be used for display purposes only.

### Example

```csharp
AgentDataAggregateParams parameters = new()
{
    DeploymentName = "deployment_name"
};

var page = await client.Beta.AgentData.Aggregate(parameters);
await foreach (var item in page.Paginate())
{
    Console.WriteLine(item);
}
```

#### Response

```json
{
  "items": [
    {
      "group_key": {
        "foo": "bar"
      },
      "count": 0,
      "first_item": {
        "foo": "bar"
      }
    }
  ],
  "next_page_token": "next_page_token",
  "total_size": 0
}
```

## Delete Agent Data By Query

`AgentDataDeleteByQueryResponse Beta.AgentData.DeleteByQuery(AgentDataDeleteByQueryParamsparameters, CancellationTokencancellationToken = default)`

**post** `/api/v1/beta/agent-data/:delete`

Bulk delete agent data by query (deployment_name, collection, optional filters).

### Parameters

- `AgentDataDeleteByQueryParams parameters`

  - `required string deploymentName`

    Body param: The agent deployment's name to delete data for

  - `string? organizationID`

    Query param

  - `string? projectID`

    Query param

  - `string collection`

    Body param: The logical agent data collection to delete from

  - `IReadOnlyDictionary<string, FilterItem>? filter`

    Body param: Optional filters to select which items to delete

    - `Eq? Eq`

      - `Double`

      - `string`

      - `DateTimeOffset`

    - `IReadOnlyList<Exclude?> Excludes`

      - `Double`

      - `string`

      - `DateTimeOffset`

    - `Gt? Gt`

      - `Double`

      - `string`

      - `DateTimeOffset`

    - `Gte? Gte`

      - `Double`

      - `string`

      - `DateTimeOffset`

    - `IReadOnlyList<Include?> Includes`

      - `Double`

      - `string`

      - `DateTimeOffset`

    - `Lt? Lt`

      - `Double`

      - `string`

      - `DateTimeOffset`

    - `Lte? Lte`

      - `Double`

      - `string`

      - `DateTimeOffset`

    - `Ne? Ne`

      - `Double`

      - `string`

      - `DateTimeOffset`

### Returns

- `class AgentDataDeleteByQueryResponse:`

  API response for bulk delete operation

  - `required Long DeletedCount`

### Example

```csharp
AgentDataDeleteByQueryParams parameters = new()
{
    DeploymentName = "deployment_name"
};

var response = await client.Beta.AgentData.DeleteByQuery(parameters);

Console.WriteLine(response);
```

#### Response

```json
{
  "deleted_count": 0
}
```

## Domain Types

### Agent Data

- `class AgentData:`

  API Result for a single agent data item

  - `required IReadOnlyDictionary<string, JsonElement> Data`

  - `required string DeploymentName`

  - `string? ID`

  - `string Collection`

  - `DateTimeOffset? CreatedAt`

  - `string? ProjectID`

  - `DateTimeOffset? UpdatedAt`
